__name__可以返回一个类或者一个函数的名字。
def test(): pass class Human: pass print(test.__name__) print(Human.__name__)
test Human
我们在程序编写时候,经常用到的__name__ == __main__
那时因为__name__直接可以在模块中或者你写的代码中直接运行。
任何一个python的shell里面直接执行__name__必定返回"__main__",因为在主函数中,运行该模块的名称就是__main__。
但如果作为被其它模块调用时,它在执行__name__的时候就时它的文件名了。
这里我做一个比较不同的试验。
print(__name__) if __name__ == 'a1': # 由于 __name__不等于a1所以后面的不执行 print(1111)
__main__
但当我:
import a1
输出
a1 1111
因为a1被当做模块导入时,它的名字已经变成a1,后面的print就可以正常执行输出。