簡單理解Python中的if __name__ == '__main__'
阿新 • • 發佈:2018-12-17
一個.py檔案被其他.py檔案引用
假設我們有一個const.py檔案,內容如下:PI = 3.14
def main():
print("PI:", PI)
main()
# 執行結果:PI: 3.14
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
現在,我們寫一個用於計算圓面積的area.py檔案,area.py檔案需要用到const.py檔案中的PI變數。從const.py中,我們把PI變數匯入area.py:
from const import PI
def calc_round_area(radius):
return PI * (radius ** 2)
def main():
print("round area: ", calc_round_area(2))
main()
'''
執行結果:
PI: 3.14
round area: 12.56
'''
修改const.py,新增if __name__ == "__main__"
我們看到const.py中的main函式也被運行了,實際上我們不希望它被執行,因為const.py提供的main函式只是為了測試常量定義。這時if __name__ == '__main__'
派上了用場,我們把const.py改一下,新增if __name__ == "__main__"
PI = 3.14
def main():
print("PI:", PI)
if __name__ == "__main__":
main()
- 1
- 2
- 3
- 4
- 5
- 6
- 7
執行const.py,輸出如下:
PI: 3.14
- 1
執行area.py,輸出如下:
round area: 12.56
- 1
如上,我們可以看到if __name__ == '__main__'
相當於Python模擬的程式入口,Python本身並沒有這麼規定,這只是一種編碼習慣。由於模組之間相互引用,不同模組可能有這樣的定義,而程式入口只有一個。到底哪個程式入口被選中,這取決於__name__