1

我有一个模块如下:

模块1.py

Class bla():
  code here

def main():

  g1=bla()

if __name__ == '__main__':
  main()

当我做ipython module1.py或进入 IPython 并且import module1代码按预期运行时。但是,当我输入类似print g1它说g1未定义的内容时,即使我g1在主程序中定义了。似乎代码运行了主程序,然后以某种方式“退出”它,只给我留下了 ipython 提示符。我想使用我在主函数中定义的变量...

我该怎么做呢?

4

1 回答 1

3

您必须标记g1为全局:

def main():
    global g1
    g1 = bla()

通常,函数中定义的任何名称仅对函数来说是本地的。您仍然必须从模块中导入名称,或者将其作为模块的属性引用:

import module1

print module1.g1
于 2013-03-01T21:30:41.873 回答