"""1 .list 可以根据索引赋值"""
a = [1, 23, 33] print(a) b = a.index(23) # 找到值为23的索引 print(b) a[b] = 999 # 根据索引赋值 print(a)
结果
[1, 23, 33] 1 [1, 999, 33]
"""2 .闭包"""
如果外函数在结束的时候发现有自己的临时变量将来会在内部函数中用到,就把这个临时变量绑定给了内部函数,然后自己再结束。
闭包的定义
1 在一个外函数中定义了一个内函数。
2 内函数里运用了外函数的临时变量。
3 并且外函数的返回值是内函数的引用。
是闭包
def foo():
a = []
def func(num): # 符合定义1 在一个外函数中定义了一个内函数
a.append(num) # 符合定义2 内函数里运用了外函数的临时变量 a
print(a)
print(func.__closure__)
return func # 符合定义3 并且外函数的返回值是内函数的引用。
x = foo()
x(1)
x(2)
x(3)
非闭包
def foo():
a = []
def func(num): # 符合定义1 在一个外函数中定义了一个内函数
print(num) # 不符合定义2 内函数里没有运用了外函数的临时变量 a
print(func.__closure__) # 有值就是闭包
return func # 符合定义3 并且外函数的返回值是内函数的引用。
x = foo()
x(1)
x(2)
x(3)
3.迭代器 4.生成器 5.装饰器 6.函数加不加括号 7.深浅拷贝



