复习 ''' 函数的嵌套定义:在函数内部定义另一个函数 闭包:被嵌套的函数 -- 1.外层通过形参给内层函数传参 -- 2.验证执行 开放封闭原则: 功能可以拓展,但源代码与调用方式都不可以改变 装饰器:装饰器名就是外层函数 @outer @outer # fn = outer(fn) def fn(): pass ''' def wrap(func): def inner(*args, **kwagrs): # res = func(*args, **kwagrs) res = outer.i…
一.迭代器 python 一切皆对象 能被for循环的对象就是可迭代对象 可迭代对象: str,list,tuple,dict,set,range 迭代器: f1文件句柄 dir打印该对象的所有操作方法 s = 'python' print(dir(s)) 执行输出: ['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__…
迭代器 迭代器对象:有__next__()方法的对象是迭代器对象,迭代器对象依赖__next__()方法进行依次取值 with open('text.txt','rb',) as f: res = f.__next__() # 第一行内容 print(res) res = f.__next__() # 第二行内容 print(res) 生成器 定义生成器的两种方式: # generator保存的是算法,每次调用next(),就计算出下一个元素的值,直到计算到最后一个元素,没有更多的元素时,抛出S…
生成器: 带有yield的函数 迭代器:带有next 方法的对象,可以作为内建函数next的参数 迭代对象:带有__iter__方法的对象,__iter__方法返回迭代器 ----------------------------------------------- 迭代对象可以用for遍历 生成器是一种迭代器,生成器可以通过send方法与调用方双向沟通 迭代对象和迭代器的联系是:可以对迭代对象使用iter()方法来生成迭代器 ----------------------------------…
一,复习 ''' 1.函数的参数:实参与形参 形参:定义函数()中出现的参数 实参:调用函数()中出现的参数 形参拿到实参的值,如果整体赋值(自己改变存放值的地址),实参不会改变,(可变类型)如果修改内部内容,实参会跟着变化 位置实参 - 只能对位置形参赋值 关键字实参 - 可以对所有(不包含可变长位置形参)形参赋值 位置形参 - 必须出现在最前,且必须传值 默认形参 - 出现在位置形参后*前,可以不用传参 可变长位置形参 - 接收所有位置形参.默认形参没有接收完的位置实参 有无默认值关键字形参…
一.迭代器 1.迭代器概念: 器:包含了多个值的容器 迭代:循环反馈(一次从容器在取出一个值) 迭代器:从装有多个值的容器在一次取出一个值 ls=[3,5,7,1,9] 遍历:被遍历的对象必须是有序容器 i=0 while i<len(ls): print(ls[i]) i+=1 输出结果 3 5 7 1 9 属于无序输出 输出的是有序的 st={1,2,3,4,5} dic={'a':1,'b':2} 2.可迭代对象概念: 对象:python中的一个对象(装有地址的变量) 可迭代对象:该对象有…
def my_generator(): print(1111) yield '结果1' print(2222) yield '结果2' print(3333) yield '结果3' print(4444) yield '结果4' g_obj = my_generator() # my_generator()并不会执行函数体,得到的返回值就是生成器对象,生成器对象就是迭代器对象 r1 = g_obj.__next__() print(r1) # 在函数内部执行一次,在遇到下一个yield时停止,…
一.复习 1.闭包:定义在函数内部的函数(被函数嵌套的函数) 2.装饰器:闭包的一个应用场景 -- 为一个函数添加新功能的工具 3.开放封闭原则:不能修改源代码,不能修改调用方式,但可以对外提供增加新功能的特性 小点:多个装饰器运行流程 def o1(func): def inner(*args, **kwargs): result = func(*args, **kwargs) return result return inner def o2(func): def inner(*args,…
迭代器大概念 # 迭代器:循环反馈的容器(集合类型)# -- 不同于索引取值,但也可以循环的从容器对象中从前往后逐个返回内部的值​# 优点:不依赖索引,完成取值# 缺点:不能计算长度,不能指定位取值(只能从前往后逐一取值) 可迭代对象 # 可迭代对象:内置有__iter__()方法的对象,称之为可迭代对象​# 可迭代对象:str | list | tuple | set | dict | range() | enumerate() | file | 生成器对象 迭代器对象 # 迭代器对象:内置有…
复习 函数的嵌套定义:在函数内部定义另一个函数 闭包:被嵌套的函数 -- 1.外层通过形参给内层函数传参 -- 2.返回内部函数对象---->  延迟执行, 开放封闭原则: 功能可以拓展,但源代码与调用方式都不可以改变 装饰器:装饰器名就是外层函数 @outer @outer  # fn = outer(fn) def fn(): pass 今日内容 1.带参装饰器  |  2.wrapper  |  3.可迭代对象 |   4.迭代器对象  |  5.for 迭代器工作原理 |  6.枚举对象…