Python之路第一天  迭代器:

闭包:在内层函数中访问外层函数的变量

1、闭包可以让调用这个变量的代码一致性
def outer():
    a = 10  # 内部变量
    def inner():
        nolocal a = 20 #只可以在内部修改 保证业务的逻辑性
        print(a)
    return inner
2、闭包也可以让变量常驻内存
代码如上,如果没有发生调用outer,变量a就会常驻内存

# 判断是否为闭包
def outer():
    a = 10
    def inner():
        print(a)
        print('aaa')
    print(inner.__closure__)

outer()

#结果为None 则不是闭包
#有结果显示内存地址,则为闭包

  

1、具有__iter__()方法的为可迭代对象iterable

str  list tuple dict 都是可迭代对象

2、生成迭代器,迭代器里面有__next__()方法,

s = 'abcdefg'

it = s.__iter__() #获取迭代器 it为迭代器的对象

特点:

1、只能前进

2、节省内存