如何防止python中导入模块的模块代码执行?

时间:2014-10-15 21:39:18

标签: python import

鉴于我有文件

testone.py。

if __name__ == "__main__":
    from testtwo import Fu
class Foo:
    def bar(self):
        print 'barrr'

testtwo.py

class Fu:
    def baz(self):
        print 'baz'

Fu().baz() # function call within module

如何在不运行模块testtwo.py中调用的函数的情况下从文件testtwo.py导入类Fu?我试着解决检查名称的问题。正如运行文件testone.py将导致shell打印出baz。

1 个答案:

答案 0 :(得分:1)

  

如何防止在python中从模块执行模块代码?

导入模块时,它无法运行全局范围内调用的所有内容。

您可以更改它,以便它可以轻松打电话:

def main():
    Fu().baz()

if __name__ == '__main__':
    main()

然后当你想要它时,你导入它并调用main(),当它作为主模块运行它时它仍会自动运行。