先看實例:
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後面的語句