__name__是用来标识模块名字的一个系统变量。这里分两种情况:第一种情况指的是当前运行的模块,那么当前模块__name__的值就为"main";第二种情况指的是该模块是使用import导入的模块,那么这个被导入模块的__name__变量的值为该模块的文件名(去掉.py)
代码如下
class Person:
def __init__(self):
pass
def getAge(self):
print(__name__)
p = Person()
p.getAge() # --> __main__
# 如果单独打印, 也是一样
print(__name__) # --> __main__
在这里延伸出平常我们在py文件中经常见到的
if __name__ == '__main__':
这句话有什么作用呢, 这句话表示只在当前py文件有效, 或者作为当前py文件的程序启动入口
1.在这下面写的代码(包括变量) 不会被别的py文件导入, 比如我在t2.py文件这句话下面定义一个a变量,
然后在t1.py中导入会发生什么, 会发现导不进去, 会报错
2.基于第一点, 我们可以在当前模块调试函数, 类, 等等,不用担心当前模块被别的模块导入的时, 候引起其他麻烦