闭包和迭代器
闭包
闭包
def func():
name = 'alex' #常驻内存,防止其他程序改变这个变量
def inner():
print(name) #在内存函数中调用了外层函数的变量叫闭包,可以让一个局部变量常驻内存,保护变量不被其他函数污染
return inner
print(inner.__closure__) #查看inner是否是闭包,如果有东西就是闭包,没东西就不是闭包
ret = func()
ret()
ret()
迭代器
迭代器比可迭代对象多了一个__next__()
可迭代对象:str,list,tuple,set,f(文件或者句柄),dict,这些数据类型中都有一个函数__iter__(),所有包含了__iter__()的数据类型都是可迭代的数据类型Iterable,f是Iterator
dir()查看一个对象,数据类型中包含了哪些东西
可迭代对象
lst = [1,2,3] #list
print(dir(lst))
print("__iter__" in dir(lst))
浙公网安备 33010602011771号