使用导入模块的IPython交互式运行



我有一个模块如下:

module1.py

Class bla():
  code here
def main():
  g1=bla()
if __name__ == '__main__':
  main()

当我执行ipython module1.py或进入ippython和import module1时,代码按预期运行。然而,当我然后输入像print g1这样的东西时,它说g1没有定义,即使我在主程序中定义了g1。似乎代码运行主程序,然后以某种方式"退出"它,只给我留下python提示符。我想使用我在main函数中定义的变量…

我该怎么做?

您必须将g1标记为全局:

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

通常,函数中定义的任何名称仅是该函数的局部名称。您仍然需要从模块中导入名称,或者将其作为模块的属性引用:

import module1
print module1.g1

最新更新