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

ap

鉴于我有文件

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导入类Fu,而不运行模块testtwo.py中调用的函数?我尝试解决检查名称的问题。运行时,文件testone.py将导致外壳打印出baz。

亚伦·霍尔

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

导入模块时,不能运行在全局范围内调用的所有内容。

您可以对其进行更改,以便轻松调用或不调用它:

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

if __name__ == '__main__':
    main()

然后,当您需要调用它时,可以导入并调用它,main()并且在将其作为主模块运行时仍会自动运行。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章