python __main__疑问?

我不是很明白这里的顶层代码执行的作用域名称是什么意思,还有这里的读入我能理解为执行吗?python __main__疑问?


回答:

__name__是一个python内置类属性,存在于每个python模块(也就是每个.py文件)中,代表该模块在运行时的名称。
若是直接运行一个.py文件,该文件的__name__属性就会为__main__。若是被其他模块导入,运行时,就会设定为自身模块的名称(也就是没有.py的文件名)
具体可以通过编写一个文件a.py
里面写上

print(__name__)

然后再同目录下再编写一个b.py
里面写上

import a

print(__name__)

通过分别运行a.pyb.py自行感受。
如此一来,if __name__ == '__main__':的含义也很明确了,在这条if语句下面的代码,只有被单独运行而非被其他模块导入时,才会执行。很多人将if __name__ == '__main__':当成python中的主函数,用以限定某些代码只有在被单独运行这个文件时才会被执行。


回答:

python的模块系统就像一个小区,每家每户一个独立的名字。但python解释器运行要有一个主入口,类似c语言里的main()函数,它直接翻牌子临幸哪家,哪家的__name__就变成唯一的“__main__”,其他临时召唤过来的只能用自己的名字或外号。

以上是 python __main__疑问? 的全部内容, 来源链接: utcz.com/p/162718.html

回到顶部