python函数关于局部变量,全局变量未注意而导致的报错问题(报错提示:xxx is not defined)
自定义函数时,程序中的变量并不是在哪个位置都可以被使用的,使用权限决定于这个变量是在哪里赋值的。关于这个概念,目前我们只需要掌握下面两点即可:
第一点:一个在函数内部赋值的变量仅能在该函数内部使用(局部作用域),它们被称作【局部变量】
第二点:在所有函数之外赋值的变量,可以在程序的任何位置使用(全局作用域),它们被称作【全局变量】
实例
eg:
ss = 10
def hello():
bs = 2
cs = 5
ds = bs+cs
print(ds)
def world():
es = 10
fs = ds+cs
gs = ds+es+ss
print(fs)
print(gs)
hello()
world()
输出:会显示ds is not defined(实际上cs也为局部变量,也没有被定义。)
修改方法
利用global声明全局变量
ss = 10
def hello():
global cs,ds #**这里用global来声明全局变量**
bs = 2
cs = 5
ds = bs+cs
print(ds)
def world():
es = 10
fs = ds+cs
gs = ds+es+ss
print(fs)
print(gs)
hello()
world()
结果输出:
7
12
27