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感兴趣,可以私信我,送学习资料哦!

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 我感到有点不对劲有一些血涌了出来我不敢照镜子眼窝一定是塌陷的有一些忧伤碎碎地从耳朵里流出 这还不算啥我不敢照镜子我...
    高华栋阅读 393评论 2 15
  • 微软公司有一道大家熟知的面试题:井盖是圆的好还是方的好?对于这道看似简单的题目,你可能会不假思索地认为当然是圆的好...
    小小Mark阅读 1,657评论 1 0
  • 好像越长大,离最初的自己越远。 但希望你不要忘记初心,阳光里做个孩子,风雨里做个大人。
    不变319阅读 136评论 0 0