__name__是模块的名字
首先,一个变量一次只有一个值。
其次,__name__的值python自动给。
比如,你的文件叫 hello.py,它在引入之后,__name__就是hello.
是当前直接执行的模块的名字。python给的。
也就是说,当你的模块正在执行时,它的名字(__name_)就是 __main_。
那上面那个执行时还叫不叫hello呢,答案是不叫。他自己执行时叫自己 __main__,别人才叫他hello。
很明显,是一个判断。
这个下面的代码是模块直接执行时才去运行。
有一些代码必须在模块直接执行时运行。可能你现在还没遇到。
你现在运行的代码,执行可能是单模块,所以对于你来说,判断和不判断都可以执行。
我有一个hello.py文件,内容如下:
# coding: utf-8
# 当前模块是 hello.py
# 首先,你要有一个模块叫world.py,随便写啥都行
# 导入模块
import world
# 打印导入的模块的名字(__name__)
print(world.__name__)
# 在当前文件打印__name__,这是当前模块的属性
print(__name__)
# 看看当前模块的名字是不是__main__
if __name__ == '__main__':
print("It's main")
# 看看当前模块的名字是不是hello
if __name__ == 'hello':
print("It's hello")
现在,为了便于理解,在world.py写了以下代码:
# coding: utf-8
if __name__ == '__main__':
print("It's main")
if __name__ == 'world':
print("It's world")
我们执行hello.py,输出如下
It’s world
world
_main_
It’s main