为什么下面三个函数中的最后两个会出现异常而第一个不会?
def func(lst=[]):
def inner_func():
lst.append(10)
return lst
return inner_func()
def func2(num=10):
def inner_func():
num += 1
return num
return inner_func()
def func3(lst=[]):
def inner_func():
lst += [10]
return lst
return inner_func()
if __name__ == '__main__':
print('func:', func())
try:
print('func2:', func2())
except UnboundLocalError as e:
print('func2:', e)
try:
print('func3:', func3())
except UnboundLocalError as e:
print('func3:', e)
执行结果:
func: [10]
func2: local variable 'num' referenced before assignment
func3: local variable 'lst' referenced before assignment