python3全局变量和局部变量

(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

猜你喜欢

转载自blog.csdn.net/maergaiyun/article/details/82351415