【问题标题】:What is the difference between a module and a script in Python?Python中的模块和脚本有什么区别?
【发布时间】:2011-03-01 01:56:09
【问题描述】:

认为标题总结了问题:-)

【问题讨论】:

    标签: python scripting module


    【解决方案1】:

    脚本通常是一段直接可执行的代码,它自己运行。模块通常是一个库,由其他代码段导入。

    请注意,没有内部区别 -- 两者都是可执行和可导入的,尽管库代码在直接执行和导入设计用于是一个脚本将导致它执行,因此常见的if __name__ == "__main__" 测试。

    【讨论】:

    • 是的。此外,只要我们谈论区别,我就称它为程序(而不是脚本),除非它的主要用途是为其他程序的操作编写脚本。
    【解决方案2】:

    任何 Python 模块都可以作为脚本执行。唯一显着的区别是,当作为模块导入时,文件名用作模块名称的基础,而如果将其作为脚本执行,则模块命名为 __main__

    通过将特定于脚本的代码包含在由if __name__=="__main__" 保护的块中,这种区别使得导入时可能具有不同的行为。众所周知,当用户尝试以自己的名称导入主模块而不是导入 __main__ 时,这会引起混淆。

    脚本和模块之间的一个小区别是,当您导入模块时,系统将尝试使用现有的 .pyc 文件(前提是它存在并且是最新的并且适用于该版本的 Python),并且如果它必须编译从 .py 文件中,它将尝试保存 .pyc 文件。当您将 .py 文件作为脚本运行时,它不会尝试加载以前编译的模块,也不会尝试保存已编译的代码。出于这个原因,可能值得让脚本保持较小以最大限度地缩短启动时间。

    【讨论】:

    • 我建议将短语 executed as a script 替换为 executed,也许还有剩余的 scriptcomment of ʇsәɹoɈ 中建议的 program
    猜你喜欢
    • 1970-01-01
    • 2011-12-18
    • 2010-10-17
    • 2016-04-23
    • 2023-03-28
    • 2019-12-15
    • 1970-01-01
    • 2011-04-10
    • 2013-01-11
    相关资源
    最近更新 更多