在Python可以在函数中直接使用定义的全局变量,但是如果需要修改这个全局变量,那么就要在函数前面 global a
表明在函数中的a
是 全局变量a
而不是重新定义的局部变量a
。
- 这个代码就报错,因为全局变量
a
并没有通过函数传参传递进来,所以在内部a
只能做右值,不能做左值。
a=998
def fun():
c=3+a
a=1
fun()
- 下面这个代码段就是对的。
a=998
def fun():
c=3+a
print(c)
fun()
>>1001
- 如果全局
变量
需要在函数内部进行修改,那么必须以这样的方式使用。
a = 109
def fun( a = a):
a=1
return a
a=fun()
print(a)
>>1
- 实例则没有这个限制。
class A :
def __init__(self):
self.a=1
a=A()
a.a=3
def fun():
a.a=4
fun()
print(a.a)
>>4