python并在if语句中分配变量值

时间:2011-10-30 15:14:43

标签: python

我有点像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

为什么标题变量标题不保持值4?我试着将返回标题全部放进去。没工作。我尝试将变量放在函数的括号中。也没工作......你知道我做错了吗?

3 个答案:

答案 0 :(得分:4)

global语句在函数之外是没有意义的。如果要修改全局变量,而不是引入本地变量,则需要将global放在函数内

def foo():
    global x
    x = x2

另外,不要使用全局变量。

答案 1 :(得分:3)

该行:

    heading=heading2

创建一个名为heading的新本地变量,它与不同与您传递给函数的另一个名为heading的变量。 / p>

您可以通过添加:

将功能分配给外部变量
global heading
在分配到标题之前

def function():
    global heading
    if a==2:
        heading=heading2
        print 'yes'
        print heading

答案 2 :(得分:0)

在Inside函数中,您正在创建一个名为heading的局部变量。这与函数外部声明的heading不同。