先看实例:
a.py文件代码:
def main():
print("你好丑")
main()
b.py文件代码:
import a
b.py文件运行结果是
>>> 你好丑
如果a.py文件代码为
def main():
print("你好丑")
if __name__ == '__main__':
main()
a.py文件运行结果是:
>>> 你好丑
b.py文件运行结果是
>>>
即main()函数没有被调用,因为
__name__ == '__main__'#结果为False
如果在a.py文件后面再加一行代码就能更加清楚了:
def main():
print("你好丑")
if __name__ == '__main__':
main()
else:
print('我好帅')
此时执行b.py得到的结果是
>>> 我好帅
其中原理是:
1、__name__
是python的只读内置变量
2、当直接运行a.py文件是__name__
的值为__main__
,所以if判断为True
,执行main()函数
3、当b.py文件中打开文件a.py时,此时a.py文件中的__name__
值为a,即模块的名称,所以if判断为False
,执行else后面的语句