为了账号安全,请及时绑定邮箱和手机立即绑定

为什么Python在导入模块时运行它,以及如何阻止它?

为什么Python在导入模块时运行它,以及如何阻止它?

POPMUISE 2019-07-15 16:04:39
为什么Python在导入模块时运行它,以及如何阻止它?我构建了一个Python程序,它可以两种方式运行:第一种是调用“pythonmain.py”,它以友好的方式提示用户输入,然后通过程序运行用户输入。另一种方法是调用“pythonbatch.py”。-档案-“这将通过所有友好的输入收集,并在一次运行程序运行整个文件的价值的输入。问题是,当我运行“batch.py”时,它从“main.py”中导入一些变量/方法/etc,并且在运行以下代码时:import main在程序的第一行,它会立即出错,因为它试图在“main.py”中运行代码。如何阻止Python运行我正在导入的“main”模块中包含的代码?
查看完整描述

3 回答

?
慕容3067478

TA贡献1773条经验 获得超3个赞

因为这正是Python的工作方式-关键字,例如classdef非声明..相反,他们是真实陈述都被执行了。如果它们没有被执行,您的模块将是.。空:-)

无论如何,惯用的方法是:

# stuff to run always here such as class/defdef main():
    passif __name__ == "__main__":
   # stuff only to run when not called via 'import' here
   main()

看见是什么if __name__ == "__main__"为?

它确实需要对模块进行源代码控制。import但是艾德。

编码愉快。


查看完整回答
反对 回复 2019-07-15
  • 3 回答
  • 0 关注
  • 2195 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信