test.py
print("这是__name__:");
print(__name__);
if __name__ == "__main__":
print("__name__等于__main__")
import_test.py
import test
执行python test.py
这是__name__:
__main__
__name__等于__main__
执行python import_test.py
这是__name__:
test
每个python模块(python文件,也就是此处的test.py和import_test.py)都包含内置的全局变量__name__。
全局变量__name__存放的就是模块的名字(也就是文件名)
而特殊情况就是,当一个模块作为脚本执行时或者在交互式环境中,如Ipython、Python自带的shell等直接运行代码,__name__的值不再是模块名,而是__main__
如果import到其他模块中,则__name__等于模块名称(不包含后缀.py)。
而“__main__”相当于当前执行文件的名称(包含了后缀.py)。
进而当模块被直接执行时,__name__ == '__main__'结果为真。
网友评论