__closure__ Python中的魔术函数
Python中几乎所有东西都是一个对象,同样的函数也是一个对象,所有的函数对象都有一个__closure__属性。 __closure__ 是一个 dunder/magic函数,即在方法名称中有两个下划线作为前缀和后缀的方法
闭包是一个函数对象,它记住封闭作用域中的值,即使它们不存在于内存中。闭包函数的__closure__ 属性返回一个单元格对象的元组。这个单元格对象还有一个名为 cell_contents 的属性,它返回单元格的内容。
句法:
closure_function.__closure__
例子:
Python
# this is a nested function
def gfg(raise_power_to):
def power(number):
return number ** raise_power_to
return power
raise_power_to_3 = gfg(3)
print(raise_power_to_3.__closure__)
print(raise_power_to_3.__closure__[0].cell_contents)
输出:
(
3
在上面的例子中,嵌套函数power有__closure__属性与之关联,它返回一个单元格对象的元组。 cell_contents属性返回值3 ,因为它在单元格对象内关闭。