stored=0
def store(arg):
stored=arg
return stored
y=store(22)
print(y)
print(stored)
输出:
22
0
我真的很想明白为什么print(stored)
不等于22.谢谢你。
答案 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
的任何赋值/修改现在都会改变全局范围内的相应名称。