访问在闭包内部定义的变量
Posted jeffrey-yang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了访问在闭包内部定义的变量相关的知识,希望对你有一定的参考价值。
闭包函数(嵌套函数):通常想使用允许访问和修改内部变量的函数来扩展闭包。
通常,闭包的内部变量完全对外界隐藏。但是,可以通过编写访问器函数并将它们作为函数属性附加到闭包来提供访问。也即为闭包函数提供函数属性。如下:
def sample():
n=0
# Closure function
def func():
print('n=', n)
# Accessor methods for n
def get_n():
return n
def set_n(value):
nonlocal n
n = value
# Attach as function attributes
func.get_n = get_n
func.set_n = set_n
return func
>>> f = sample()
>>> f()
n= 0
>>> f.set_n(10)
>>> f()
n= 10
>>> f.get_n()
10
>>>
总体来说,在需要执行诸如重置内部状态,刷新缓冲区,清除缓存或具有某种反馈机制之类的设置的设置中,向闭包添加方法可能具有更多的实用性。
以上是关于访问在闭包内部定义的变量的主要内容,如果未能解决你的问题,请参考以下文章