我不是很明白这里的顶层代码执行的作用域名称是什么意思,还有这里的读入我能理解为执行吗?
python的模块系统就像一个小区,每家每户一个独立的名字。但python解释器运行要有一个主入口,类似c语言里的main()函数,它直接翻牌子临幸哪家,哪家的__name__就变成唯一的“__main__”,其他临时召唤过来的只能用自己的名字或外号。
2 回答4.3k 阅读✓ 已解决
2 回答874 阅读✓ 已解决
1 回答4.1k 阅读✓ 已解决
3 回答877 阅读✓ 已解决
2 回答2.2k 阅读✓ 已解决
4 回答2.6k 阅读
3 回答917 阅读✓ 已解决
__name__
是一个python内置类属性,存在于每个python模块(也就是每个.py
文件)中,代表该模块在运行时的名称。若是直接运行一个
.py
文件,该文件的__name__
属性就会为__main__
。若是被其他模块导入,运行时,就会设定为自身模块的名称(也就是没有.py
的文件名)具体可以通过编写一个文件
a.py
里面写上
然后再同目录下再编写一个
b.py
里面写上
通过分别运行
a.py
和b.py
自行感受。如此一来,
if __name__ == '__main__':
的含义也很明确了,在这条if
语句下面的代码,只有被单独运行而非被其他模块导入时,才会执行。很多人将if __name__ == '__main__':
当成python中的主函数,用以限定某些代码只有在被单独运行这个文件时才会被执行。