-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 的值,即使它是在 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()
4

1 回答 1

1

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

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

于 2012-10-04T15:12:25.010 回答