-
Function Closure: 引用了自由变量的函数即是一个闭包. 这个被引用的自由变量和这个函数一同存在, 即使已经离开了创造它的环境也不例外.
-
说出下面函数返回值
def foo():
l = []
def bar(i):
l.append(i)
return l
return barf1 = foo() f2 = foo() # 说出下列语句执行结果 f1(1) f1(2) f2(3)
-
深入一点: object.closure
-
作用域
┌───────────────────────────┐
│ built-in namespace │
├───────────────────────────┤ ↑
│ global namespace │
│ ┌───────────────────────┤
│ │ local namespace │ n = 123
│ │ ┌───────────────────┤
│ │ │ local namespace │ ↑
│ │ │ ┌───────────────┤
│ │ │ │ … │ print(n)
└───┴───┴───┴───────────────┘- 声明全局变量: global
- 声明非本层的 局部变量 : nonlocal
- 查看全局变量: globals()
- 查看局部变量: locals()
- 查看变量: vars([object]) # 不传参数相当于 locals(), 传入对象后, 会得到 object.dict
python进阶之函数闭包
最新推荐文章于 2024-08-14 17:18:35 发布