|
发表于 2023-3-28 13:15:33
|
显示全部楼层
本楼为最佳答案
Python中的闭包(closure)是指一个函数对象和它所引用的外部变量组成的一个整体。当一个函数定义在另一个函数内部,并且引用了外部函数的变量时,就会形成一个闭包。
闭包中的数据保存在函数对象的__closure__属性中,这个属性是一个元组,包含了所有被闭包引用的外部变量。每个元素是一个cell对象,保存了变量的值。这些cell对象可以通过cell_contents属性获取。
下面是一个示例代码,展示了闭包中的数据保存在哪里:
- def outer_function(x):
- def inner_function(y):
- return x + y
- return inner_function
- closure = outer_function(10)
- print(closure.__closure__[0].cell_contents) # 输出 10
复制代码
在这个例子中,inner_function是一个闭包,它引用了外部函数outer_function的变量x。当我们调用outer_function(10)时,它返回了一个闭包对象,并将变量x的值设置为10。我们可以通过访问闭包对象的__closure__属性来获取闭包中保存的外部变量。 |
|