Python中的装饰器——简单应用

#!/usr/bin/env python

#-*- coding:utf-8 -*-

#实现生产和吃包子

#具体功能用函数实现

# import time

# def producer():

#    ret = []

#    for i in range(10):

#        time.sleep(1)

#        ret.append('包子%s'%i)

#    return ret

# def consumer(res):

#    for index,baozi in enumerate(res):#返回索引和类容

#        time.sleep(1)

#        print('第%s个人,吃了%s'%(index,baozi))

# res = producer()

# consumer(res)

#上述过程太慢,两则有先后顺序(顺序执行)-应该并发运行

#如何实现并发运行?(同时运行两个程序)-运行一个(跳到另一个程序),执行一个

#生成器实现并发操作

import time

def consumer(name):

    print("我是【%s】,我准备吃包子"%name)

    while True:

        baozi= yield#吃包子

        time.sleep(1)

        print("%s吃了 【%s】"%(name,baozi))

#封装下列功能

# c1 = consumer('rice')

# c1.__next__()

# c1.send("肉包")

def producer():

    c1= consumer('rice')#吃的人也可以封装,不运行

    c1.__next__()#开始运行

    for iin range(10):

        time.sleep(1)#生产包子所需要的时间

        c1.send("肉包%s"%i)

producer()

##两个程序同时进行,一个程序触发另一个程序(并发)-实则在一个程序中模拟并发的效果(单线程-协程)

如果你对Python感兴趣,可以私信我,送学习资料哦!

你可能感兴趣的:(Python中的装饰器——简单应用)