Python全局变量报错

  • 内部函数,不修改全局变量但可以访问全局变量
  • 内部函数,修改同名全局变量,则python会认为它是一个局部变量
  • 在内部函数修改同名全局变量之前调用变量名称(如print sum),则引发Unbound-LocalError
import sys
sum=5
def add(a=1,b=3):
    print(a,b)
    print(sum)	 	#内部函数调用全局变量。python会认为它是局部变量。
    sum=b+a			#在print之前,没有定义sum变量,所以因为这行代码就会报错
    print(sum)
add(4,8)

遇到在程序中访问全局变量并且要修改全局变量的值的情况可以使用:global 关键字

sum=5
def add(a=1,b=3):
    global sum		#仅仅多了这行就不报错了
    print(a,b)
    print(sum)
    sum=b+a
    print(sum)
add(4,8)

你可能感兴趣的:(Python)