全局变量,局部变量
name ='lzp'#设置全局变量
def change_name():
print("my name is ",name)
change_name()
def change_name():
name ='李政蓬'#设置局部变量
print('my name is ',name )
change_name()
print(name)
def change_name():
global name#设置全局变量:在函数中设定global 变量修改为之后变量修改的内容
name ='李政蓬'
print('my name is ',name )
change_name()
print(name)
“”"
1.如果函数的内容无global关键字,优先读取局部变量,能读取全局变量, 无法对全局变量重新赋值,name="***",但是可以对可变类型的内部元素进行操作(增删改)
-无glodal,有声明变量
name= ['lzp','yxm']
def a_name():
name='lzp'
print('my name is ',name)
a_name()
-无glodal,无声明变量
name= ['lzp','yxm']
def a_name():
#name='lzp'
name.append('wjs')
print('my name is ',name)
a_name()
2.如果函数中由glbal关键字,变量本质上就是全局变量,可以读取并赋值name="***"
#有glodal关键字,有声明局部变量
name= ['lzp','yxm']
def a_name():
global name
name='lzp'
print('my name is ',name)
a_name()
有glodal关键字,无声明局部变量
name= ['lzp','yxm']
def a_name():
global name
print('my name is ',name)
a_name()
注:全局变量要大写,局部变量要小写
eg1.:
NAME = '黄伟'
def huangwei():
name = '黄'
print(name)
def liuyang():
print('liu')
def lzp():
print(lzp)
liuyang()
print(name)
huangwei()
eg2.:
NAME = '李政蓬'
def huangwei():
name = '黄伟'
print(name)
def liuyang():
name = '刘洋'
print(name)
def yxm():
name = '于鑫淼'
print(name)
print(name)
yxm()
liuyang()
print(name)
huangwei()
eg3.:
name = "刚娘"
def weihou():
name="陈卓"
def weiweihou():
global name
name= '冷静'
weiweihou()
print(name)
print(name)
weihou()
print(name)
eg4.:
name = "刚娘"
def weihou():
name="陈卓"
def weiweihou():
nonlocal name
name= '冷静'
weiweihou()
print(name)
print(name)
weihou()
print(name)