__name__ == "__main__"
是什么?
于 2020 年 1 月 7 日更新
Python 中的每个模块都有一个称为__name__
的特殊属性。 当模块作为主程序运行时,__name__
属性的值设置为'__main__'
。 否则,将__name__
的值设置为包含模块的名称。
考虑以下代码,以更好地理解。
# 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
。 通过输入以下代码,我们可以将该模块作为主程序执行:
python my_module.py
预期输出:
Executing as main program
Value of __name__ is: __main__
i am from my_module.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
的新文件,并编写以下代码:
import my_module
print(my_module.foo)
my_module.hello()
print(my_module.__name__)
预期输出:
100
i am from my_module.py
my_module
如您现在所见,由于__name__
的值设置为'my_module'
,因此my_module
中的if
语句执行失败。