Python 闭包
在Python中,__closure__
是一个用于获取函数闭包(closure)的属性。闭包是指函数对象和引用该函数定义时的环境(即自由变量)的组合。
当一个嵌套函数引用了外部函数的变量时,就会创建一个闭包。__closure__
属性返回一个包含引用的自由变量的元组,或者如果函数没有闭包,返回 None
。
def sqrt():
x = 1
def f(y):
nonlocal x
x += y
return x
return f
def sqrt2():
x = [1]
def f(y):
# nonlocal x
x[0] += y
return x
return f
s = sqrt()
print(s(1))
print(s(1))
print(s(1))
print(s(1))
print(s(1))
print(s(1))
print(s.__closure__)
for i in s.__closure__:
print(i.cell_contents)
输出:
2
3
4
5
6
7
(<cell at 0x000001C6893ACFD0: int object at 0x000001C6E78969F0>,)
7
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了