Python中在if语句中赋值变量的用法
我刚开始学Python,发誓我之前做过一个跟现在这个很像的程序,而且能正常运行。但是,不知道为什么,这次却不行。我找到了一些问题,并且写了一个假程序来试试。下面就是这个程序:
global heading
global heading2
global a
heading=2
a=2
heading2=4
def function ():
if a==2:
heading=heading2
print 'yes'
print heading
function()
print heading
这是运行后显示的内容:
yes
4
2
为什么变量heading的值没有保持在4呢?我到处都试着加上return heading,但还是不行。我还试着把变量放到函数的括号里,也没用……你知道我哪里出错了吗?
3 个回答
0
在这个函数里面,你创建了一个叫做 heading
的局部变量。这个变量和函数外面声明的 heading
不是同一个东西。
3
这一行代码:
heading=heading2
创建了一个新的 局部 变量,叫做 heading
,这个变量和你传入函数的那个同样叫 heading
的变量是 不一样 的。
如果你想让这个函数能够修改外部的变量,可以在赋值之前加上:
global heading
在你给 heading
赋值之前:
def function():
global heading
if a==2:
heading=heading2
print 'yes'
print heading
4
global
这个关键词在函数外面是没有意义的。如果你想修改一个全局变量,而不是创建一个局部变量,你需要把 global
放在函数里面。
def foo():
global x
x = x2
另外,不要使用全局变量。