2012-10-04 140 views
-1

我有一个脚本更新变量,但返回另一个变量。蟒蛇使用全局变量功能

如:

x = "" 
def callMe(): 

    global x 
    x = "test" 
    y = "123" 

    return y 

def main(): 
    y1 = callMe() 
    print y1 
    print x 

if __name__ == "__main__": 
    main() 

在这里得到X emtpy的价值,即使它在呼我()函数更新。

有什么想法?

UPDATE:

我错了之前我的剧本,这是我目前的脚本的行为,并没有显示在主z的值...

x = "" 
z = "" 
def callMe(): 

    global x 
    x = "test" 
    y = "123" 
    if y: 
     z = y 
    else: 
     z = "dont know" 
    return y 

def main(): 
    y1 = callMe() 
    print y1 
    print x 
    print z 

if __name__ == "__main__": 
    main() 
+5

适用于我。你有什么版本的Python? – geoffspear

回答

1

如果您正在导入此模块而不是直接运行它,main()将不会执行。 否则,没有理由不应该这样做。

如果您的将此代码作为模块导入,__name__将返回模块的名称,而不是'__main__'。因此,main()永远不会被调用,并且x的值将保持为""