def b():
b = 1
def bchange():
b += 1 #UnboundLocalError: local variable 'b' referenced before assignment
bchange()
print b
比如在这段代码中,如何使bchange这个函数能够对b()中的b成功实施+1操作? 注:不使用参数传递。
Python 3:
def b():
b = 1
def bchange():
nonlocal b
b += 1
bchange()
print(b)
Python 2 只能这样(利用 mutable 对象):
def b():
b = [1]
def bchange():
b[0] += 1
bchange()
print b[0]