通常来讲,闭包的内部变量对于外界来讲是完全隐藏的。 但是,你可以通过编写访问函数并将其作为函数属性绑定到闭包上来实现这个目的。例如:
def sample():n = 0def func():print('n=', n)def get_n():return ndef set_n(value):nonlocal nn = valuefunc.get_n = get_nfunc.set_n = set_nreturn funcif __name__ == '__main__':f = sample()f()f.set_n(100)f()print(f.get_n())
输出:
n= 0n= 100100
