由於 Python 中沒有 main() 函數,當運行 Python 程序的命令給解釋器時,將執行 0 級縮進的代碼。但是,在此之前,它會定義一些特殊變量。 __name__ 就是一個這樣的特殊變量。如果源文件作為主程序執行,解釋器將 __name__ 變量設置為 “__main__”。如果這個文件是從另一個模塊導入的,__name__ 將被設置為模塊的名稱。
__name__ 是一個 內置 變量,其計算結果為當前模塊的名稱。因此,它可以用來檢查當前腳本是在自己運行還是通過與 if 語句組合而被導入到其他地方,如下所示。
考慮兩個單獨的文件 File1 和 File2。
# File1.py
print ("File1 __name__ = %s" %__name__)
if __name__ == "__main__":
print ("File1 is being run directly")
else:
print ("File1 is being imported")
# File2.py
import File1
print ("File2 __name__ = %s" %__name__)
if __name__ == "__main__":
print ("File2 is being run directly")
else:
print ("File2 is being imported")
Now the interpreter is given the command to run File1.py. python File1.py Output: File1 __name__ = __main__ File1 is being run directly And then File2.py is run. python File2.py Output: File1 __name__ = File1 File1 is being imported File2 __name__ = __main__ File2 is being run directly
如上所示,當 File1.py 直接運行時,解釋器將 __name__ 變量設置為 __main__,當通過導入運行 File2.py 時,將 __name__ 變量設置為 python 腳本的名稱,即 File1。因此,可以說如果 __name__ == “__main__” 是使用 python File1.py 之類的命令從命令行運行腳本時運行的程序的一部分。
相關用法
- Python __file__用法及代碼示例
- Python tensorflow.math.special.expint()用法及代碼示例
- Python tensorflow.math.special.dawsn()用法及代碼示例
- Python tensorflow.math.special.spence()用法及代碼示例
- Python tensorflow.math.special.fresnel_sin()用法及代碼示例
- Python tensorflow.math.special.fresnel_cos()用法及代碼示例
注:本文由純淨天空篩選整理自GeeksforGeeks大神的英文原創作品 __name__ (A Special variable) in Python。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。