如何防止 Python 在导入时执行代码
您已经实现了一个 Python 程序,它允许两种执行方法:交互式带有用户输入的模式(main.py)和处理来自文件的输入的批处理模式(batch.py)。但是,将main.py导入到batch.py中,会触发main.py中代码的执行,从而导致错误。
原因:
在Python中,像这样的关键字class 和 def 表示遇到时执行的语句。这些语句不仅仅是声明,而是主动语句,这是一种确保模块中内容存在的设计功能。
解决方案:
解决此问题的 Pythonic 方法就是采用以下结构:
# Place any code that should run regardless of execution mode here (e.g., class/def) def main(): pass if __name__ == "__main__": # Code that is only executed when called as "python main.py" main()
通过这种方式,代码放置在无论脚本如何调用(直接调用或通过导入),main 函数都会运行。 main 函数中的代码仅在直接运行脚本时才会执行 (python main.py)。
以上是如何防止模块导入期间Python代码执行?的详细内容。更多信息请关注PHP中文网其他相关文章!