python_55_局部和全局变量

school='Hebut'#school为全局变量
sex='male'#全局变量
names=['Wang Yu','Bai Jingyi','Zhang Yu']
hobby='姑娘'
def change_name(name):
    global hobby#在函数中修改全局变量,记住以后别用这个方式
    hobby='study'
    print('before change:',name,school)
    name=name.upper()#name为局部变量,函数为其作用域
    age=23#age为局部变量,函数为其作用域,函数之外无效
    sex='female'#局部变量
    names[0]='王禹'
    print('after change:',name,sex,names)
print(hobby)#函数调用之前还是按照之前的
name='qibajie'
change_name(name)
print(name)#还是原来的
#print(age)  #NameError: name 'age' is not defined
print(sex)#打印的是全局变量(注:字符串、单独的整数不能在局部变量中修改全局变量,而列表,字典,类,集合可以在局部中修改全局变量)
print(names)
print(hobby)
全局与局部变量:  
在子程序中定义的变量称为局部变量,在程序的一开始定义的变量称为全局变量。
全局变量作用域是整个程序,局部变量作用域是定义该变量的子程序。
当全局变量与局部变量同名时:
在定义局部变量的子程序内,局部变量起作用;在其它地方全局变量起作用。

 

原文地址:https://www.cnblogs.com/tianqizhi/p/8351041.html