__name__ 保護是保護使用者的常見 Python 習慣用法當他們無意時意外調用腳本。如果您將腳本匯入到另一個腳本中或將其序列化為 pickle,則忽略此防護可能會導致意外行為。
當解釋器讀取時一個源文件,它做了兩件事:
如果將模組作為主程式運行,則__name__ 設定為「__main__」。否則,當您匯入模組時,__name__ 將設定為模組的名稱。
__name__ 防護的工作方式如下:
如果__name__ == '__main__' (main程式):
如果 __name__ != '__main__' (導入模組):
讓我們檢查以下程式碼:
print("before import") import math print("before function_a") def function_a(): print("Function A") print("before function_b") def function_b(): print("Function B {}".format(math.sqrt(100))) print("before __name__ guard") if __name__ == '__main__': function_a() function_b() print("after __name__ guard")
這個習慣用法允許你編寫可以被執行的 .py 檔案既可以用作獨立模組,也可以用作作為主程式運行的腳本。其有用性的一些例子:
到總而言之, if __name__ == '__main__' 保護可以省略,但建議用於多功能性、錯誤保護,並防止匯入或序列化程式碼時出現意外行為。
以上是Python 的 `if __name__ == '__main__':` 語句有什麼作用?的詳細內容。更多資訊請關注PHP中文網其他相關文章!