全局与局部变量
在子程序中定义的变量称为局部变量,在程序的一开始定义的变量称为全局变量。
全局变量作用域是整个程序,局部变量作用域是定义该变量的子程序。
当全局变量与局部变量同名时:
在定义局部变量的子程序内,局部变量起作用;在其它地方全局变量起作用。
school = "fosu"#全局变量
def change_name(name):
global sex #声明它是全局变量
sex = "femal"
print("before change",name,school)
name = "QJH"#局部变量,只作用于局部,这个函数就是这个变量的作用域
age = 23
print("before change",name)
name = "qjh"
change_name(name)
print(name)
#print(age)#因为age只是局部变量,所以这里出错
print(sex)
#不提倡,不应该在函数里改全局变量,例如这样不应该!!
def change_name(): global name name = "qjh" change_name() print(name)
#除了字符串和整数不能在局部改全局,列表,字典,集合可以在局部改全局 names = ["qjh","mate","xiaomi"] def change_name(): names[0] = "七九" print("inside is:",names) change_name() print(names)#局部里面改了,这里打印输出也跟着改了
#除了字符串和整数不能在局部改全局,列表,字典,集合可以在局部改全局
names = ["qjh","mate","xiaomi"]
def change_name():
names[0] = "七九"
print("inside is:",names)
change_name()
print(names)#局部里面改了,这里打印输出也跟着改了