Python本地范围和全局范围

时间:2016-11-05 14:55:25

标签: python-3.x

stored=0
def store(arg):
    stored=arg
    return stored
y=store(22)
print(y)
print(stored)

输出:

22
0

我真的很想明白为什么print(stored)不等于22.谢谢你。

1 个答案:

答案 0 :(得分:1)

因为该功能不会改变{em>全球范围内的stored。它在函数内部创建一个局部变量stored,为其赋值并返回它。该作业会影响本地 stored它不会触及全局stored

您可以使用stored语句使其引用全局global

def store(arg):
    global stored
    stored = arg
    return stored

添加global <var_name>语句告诉Python stored指的是全局范围内存在的名称;函数stored内对store的任何赋值/修改现在都会改变全局范围内的相应名称。