企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
# `__name__ == "__main__"`是什么? > 原文: [https://thepythonguru.com/what-is-if-__name__-__main__/](https://thepythonguru.com/what-is-if-__name__-__main__/) * * * 于 2020 年 1 月 7 日更新 * * * Python 中的每个模块都有一个称为`__name__`的特殊属性。 当模块作为主程序运行时,`__name__`属性的值设置为`'__main__'`。 否则,将`__name__`的值设置为包含模块的名称。 考虑以下代码,以更好地理解。 ```py # file my_module.py foo = 100 def hello():     print("i am from my_module.py") if __name__ == "__main__":     print("Executing as main program")     print("Value of __name__ is: ", __name__)     hello() ``` 在这里,我们定义了一个新模块`my_module`。 通过输入以下代码,我们可以将该模块作为主程序执行: ```py python my_module.py ``` **预期输出**: ```py Executing as main program Value of __name__ is: __main__ i am from my_module.py ``` ```py # file my_module.py foo = 100 def hello(): print("i am from my_module.py") if __name__ == "__main__": print("Executing as main program") print("Value of __name__ is: ", __name__) hello() ``` 在这里,我们正在创建一个新模块并将其作为主程序执行,因此`__name__`的值设置为`'__main__'`。 结果,如果条件满足,则函数`hello()`被调用。 现在创建一个名为`module.py`的新文件,并编写以下代码: ```py import my_module print(my_module.foo) my_module.hello() print(my_module.__name__) ``` **预期输出**: ```py 100 i am from my_module.py my_module ``` 如您现在所见,由于`__name__`的值设置为`'my_module'`,因此`my_module`中的`if`语句执行失败。 * * * * * *