|
|
发表于 2018-4-14 17:52:04
|
显示全部楼层
case2是原地操作,如果复制操作也会报错。
>>> def bar():
lyst += [1]
>>> bar()
Traceback (most recent call last):
File "<pyshell#99>", line 1, in <module>
bar()
File "<pyshell#98>", line 2, in bar
lyst += [1]
UnboundLocalError: local variable 'lyst' referenced before assignment
==========================================
上面这种情况就和num一样,而数字类型是mutable类型,要修改对象只支持复制操作。
==========================================
怎么解决?
使用global关键字声明作用域/命名空间。
以修改数字类型的全局变量num为例讲解:
>>> num =0
>>> def fun():
global num
num += 1
>>> fun()
>>> num
1 |
|