【问题标题】:Check if module loaded in shell or imported in a script检查模块是在 shell 中加载还是在脚本中导入
【发布时间】:2023-02-07 05:55:52
【问题描述】:

有什么方法可以检查某个模块是从交互式 shell 导入还是从 Python 中的脚本/另一个模块导入?我正在处理一个模块,并且需要基于它从 shell 使用或在脚本中使用的不同行为(要采取的操作,即关闭一些 midi 端口等需要此信息)。

【问题讨论】:

    标签: python-3.x


    【解决方案1】:

    是的,您可以使用内置的检查是否正在导入模块姓名属性。如果模块作为主程序运行,姓名将被设置为“主要的“。如果模块是从另一个模块或脚本导入的,姓名将被设置为模块的名称。

    例如:

     # file: my_module.py
    
            print("Running as the main program" if __name__ == "__main__" else "Being imported")
    

    当您将上述代码作为脚本运行时,输出将作为主程序运行。如果您从另一个模块导入 my_module,输出将是 Being imported。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-25
      • 2011-09-22
      • 2020-05-02
      • 1970-01-01
      • 2011-01-28
      • 2017-04-24
      相关资源
      最近更新 更多