__name__|__name__ =="__main__"
test.py
print("这是__name__:");import_test.py
print(__name__);
if __name__ == "__main__":
print("__name__等于__main__")
import test执行python test.py
这是__name__:执行python import_test.py
__main__
__name__等于__main__
这是__name__:每个python模块(python文件,也就是此处的test.py和import_test.py)都包含内置的全局变量__name__。
test
全局变量__name__存放的就是模块的名字(也就是文件名)
而特殊情况就是,当一个模块作为脚本执行时或者在交互式环境中,如Ipython、Python自带的shell等直接运行代码,__name__的值不再是模块名,而是__main__
如果import到其他模块中,则__name__等于模块名称(不包含后缀.py)。
而“__main__”相当于当前执行文件的名称(包含了后缀.py)。
【__name__|__name__ =="__main__"】进而当模块被直接执行时,__name__ == '__main__'结果为真。
推荐阅读
- performSelectorOnMainThread:withObject:waitUntilDone:参数设置为NO或YES的区别
- [译文]Domain|[译文]Domain Driven Design Reference(四)—— 柔性设计
- Swift7|Swift7 - 循环、函数
- 别再写 main 方法测试了,太 Low,这才是专业 Java 测试方法。。
- R语言从入门到机器学习|R语言rename重命名dataframe的列名实战:rename重命名dataframe的列名(写错的列名不会被重命名)
- File.renameTo()就是个坑!
- Rocket|Rocket NameSrv 大致分析
- iOS-App启动优化
- RocketMQ学习八-NameServer分析
- Mybatis入门之CRUD