(1)无global关键字(有声明局部变量)
idea = '我要涨工资'
def th():
print(idea) #输出全局变量的值
def boss():
idea = 'OK' #定义局部变量
print(idea) #输出全局变量的值
th()
boss()
返回值:
我要涨工资
OK
(2)无global关键字(无声明局部变量)
注:如果全局变量是可变类型,可以对全局变量的内部元素进行操作,但无法对全局变量重新赋值。
idea = ['我要涨工资','我要放长假']
def th():
print(idea)
def boss():
idea[0] = '工资翻倍'
idea.append('带薪年假')
print(idea)
th()
boss()
返回值:
['我要涨工资', '我要放长假']
['工资翻倍', '我要放长假', '带薪年假']
(3)有global关键字(有声明局部变量)
注:优先调用局部变量;声明global,可以直接对全局变量重新赋值。
idea = ['呵呵']
def th():
idea = ['我要涨工资','我要放长假']
print(idea)
def boss():
global idea
idea = 'OK'
print(idea)
th()
boss()
print(idea)
返回值:
['我要涨工资', '我要放长假']
OK
OK
(4)有global关键字(无声明局部变量)
注:无声明局部变量时,调用全局变量。
idea = ['我要涨工资','我要放长假']
def th():
print(idea)
def boss():
global idea
idea = 'OK'
print(idea)
th()
boss()
print(idea)
返回值:
['我要涨工资', '我要放长假']
OK
OK
(5)nonlocal关键字(指定上一级变量)
idea = 'emmmmmm'
def th():
idea = '我要涨工资'
def boss():
nonlocal idea
idea = '给员工加薪'
boss()
print(idea)
print(idea)
th()
print(idea)
返回值:
emmmmmm
给员工加薪
emmmmmm