python在函数中使用全局变量

时间:2012-10-04 14:58:46

标签: python

我有一个更新变量的脚本,但返回另一个变量。

例如:

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的值,即使它已在callMe()函数中更新。

任何想法?

更新

我之前的脚本错了,这是我当前脚本的行为方式,并且它没有在main中显示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()

1 个答案:

答案 0 :(得分:1)

如果您要导入此模块而不是直接运行它,则main()将不会执行。 否则,没有理由这不起作用。

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