首先在python中:
在python同一函数中调用了全局变量后又在内部定义了与全局变量同名的局部变量,导致引用全局变量那里会报错:
UnboundLocalError: local variable 'a' referenced before
assignment
代码:
1 defnumCheck():2 print("输出1:",a) #报错处,目的是想引用全局中的99
3 a = 10
4 print("输出2:", a)5 deffun():6 print("输出3:", a)7 a = 99
8 numCheck()9 fun()10 print(a)
运行结果:会直接报错。
解决方式:
方式1:在函数中要定义局部变量时不要与全局变量同名, 即在numCheck( )中定义的局部变量换个名。
方式2:进入函数时先定义与全局变量同名的局部变量,就不会报错了,
但是这样就没有达到引用全局变量a之后再定义与全局变量同名的局部变量a 的目的,所以引入方式3。
方式3:这里涉及到全局变量和局部变量的区分,如果想使用全局变量a之后再使用同名的局部变量a,
就应该是把方法和变量定义在类里。通过类的成员变量去引用全局变量。
代码如下:
1 classmine:2 def __init__(self,a):3 self.a =a4 self.b = 100
5
6 defnumCheck(self):7 print("输出1"