闭包和迭代器

闭包

闭包
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))
posted on 2025-08-06 16:03  搁浅芳  阅读(6)  评论(0)    收藏  举报