day14生成器】的更多相关文章

1.写生成器,从文件中读取内容,再每一行读取的内容前加上 ‘***’之后返回给用户 def func(filename): word = input('输入你想找的内容:') with open(filename,mode='r',encoding='utf-8') as f: for line in f: if word in line: yield line file = input('输入你要查找的文件:') g = func(file) for i in g: print('###'+…
生成器中取值的三种方法 方法1:next() 方法2:for 循环 方法3:数据类型的强制转换 def func(): for i in range(20): yield '赛车*{}'.format(i) ret = func() print(ret.__next__()) for i in ret: print(i) l1 = list(ret) print(l1) send() 方法 send 获取下一个值得时候给上一个yield位置传递一个数据 第一个 yiled 必须使用next 获取…
迭代器(iterator) 可迭代对象: 可以使用迭代器取出数据的对象 判断一个对象是否是可迭代对象,就看这个对象有没有实现__iter__方法 所有的容器类型(包括字符串)都是可迭代的 迭代器的使用 1.通过调用对象的__iter__()方法得到迭代器 2.调用迭代器的__next__()方法来获取每一个值 如何判断一个对象是不是迭代器 如果对象实现了__next__方法,name就是一个迭代器 文件类型比较特殊,既是可迭代对象,又同时是一个迭代器 迭代器总结 迭代器是一种通用的取值方式 只有…
1,复习,迭代器:双下方法很少直接调用,一般都是通过其他语法触发的:迭代器一定可迭代,可迭代的通过调用iter()方法皆可以得到一个迭代器. 迭代器很方便使用,所有的数据只可以取一次,节省内存空间.生成器的本质就是迭代器,调用生成器函数之后,函数并不执行,而是返回一个生成器, 每次调用next方法会返回一个值,知道取完最后一个,在去取会报错 2,作业,写生成器实现:有一个文件,从文件里分段读取内容,在读取出来的内容前加上***返还给调用者,这个作业其实是给网络编程做铺垫 使用readline或者…
生成器 我自己想写个可迭代的,——生成器生成器的本质就是迭代器因此生成器的所有好处都和迭代器一样但是生成器是我们自己写的python代码生成器的实现有两种方式:1.生成器函数2.生成器表达式 def func(): return ['衣服1','衣服2000000'] ret = func() print(ret) def g_func(): yield 1 g = g_func() print(g) # <generator object g_func at 0x00000000006AAFC…
一.生成器的两种形式  1.生成器函数的应用 # def cloth(): # for i in range(100): # yield '衣服%s'%i # # g = cloth() # for i in g: # print(i) # for i in range(100): # print(g.__next__()) # # for i in range(50): # print(g.__next__()) 工厂做衣服 #监听文件末尾追加的例子 # def tail(): # f = o…
def generator(): print(123) content = yield 1 print('=======',content) print(456) arg = yield 2 '''''' yieldg1 = generator()g2 = generator()g1.__next__()g2.__next__()print('***',generator().__next__())print('***',generator().__next__()) g = generator…
""" 今日内容: 1.带参装饰器及warps 2.迭代器 3.生成器 """ """ # 一.带参装饰器及warps系统装饰器 # 1.为什么需要带参装饰器? -- 昨天的内容已经讲了装饰器,但是讲的都是增加的函数不需要外界传人参数,如果装饰器也需要外界传入参数呢? -- 此时就需要带参装饰器 # 2.装饰器的推导过程 -- 如果添加的功能也需要外界传入参数时,参数应该如何通过谁进行传递呢? -- 如果通过inne…
复习 函数的嵌套定义:在函数内部定义另一个函数 闭包:被嵌套的函数 -- 1.外层通过形参给内层函数传参 -- 2.返回内部函数对象---->  延迟执行, 开放封闭原则: 功能可以拓展,但源代码与调用方式都不可以改变 装饰器:装饰器名就是外层函数 @outer @outer  # fn = outer(fn) def fn(): pass 今日内容 1.带参装饰器  |  2.wrapper  |  3.可迭代对象 |   4.迭代器对象  |  5.for 迭代器工作原理 |  6.枚举对象…