再次学习Python_三元表达式 列表
#三元表达式 # res="大于10" if 15>10 else "小于10" #列表解析式 # res=[i for i in range(20)] #迭代器 实现了__iter__()和__next__()方法的类对象 #利用__iter__()生成迭代器 # str="12313" # it=str.__iter__() # print(list(it)) #生成迭代器函数 # def pro(): # print("Start...") # print("1...") # yield 1 # print("2....") # yield 2 # t=pro() # print(next(t)) # print(t.__next__()) # 16.生成器 是一类特殊的迭代器 #作用:延迟操作 #注意:生成器只能遍历一次 #调用生成器函数的三种形式 # 1.__next__() 获取yield返回值 # 2.next() 获取yield返回值 # send() 获取yield返回值,并可以对yield进行赋值 # 生成器表达式 # res=(i for i in range(15)) #生成器函数 利用yield 进行延迟操作 #yield 可以返回值,并不退出,起到阻塞效果 # def pro(): # print("Start...") # print("1...") # yield 1 # print("2....") # yield 2 # t=pro() # print(next(t)) # print(t.__next__()) # 17.生产者消费者模型 # def producer(l): #定义生产者 # print("包子店开门了..") # t = customer("tom") #生成生成器函数 # c = customer("cat") #生成生成器函数 # t.send(None) #跳过第一次yield阻塞 # c.send(None) #跳过第一次yield阻塞 # for i in l: #循环生成包子 # print("生成包子[%s]"%i) #生成包子 # t.send("包子【%s】"%i) #通过send()给包子赋值 # c.send("包子【%s】"%i) #通过send()给包子赋值 # # def customer(name): #定义消费者 # print("%s Begin 吃包子..."%(name)) # while True: # baozi=yield None #进行阻塞 # print("%s 吃了 %s"%(name,baozi)) # # # producer(range(1000)) #测试
解析 生成器
八.再次学习Python_三元表达式 列表解析 生成器
最新推荐文章于 2022-02-15 17:40:59 发布