由於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。因此,可以說 if __name__ == “__main__” 是使用 python File1.py 等命令從命令行運行腳本時運行的程序的一部分。
相關用法
- Python __name__用法及代碼示例
- Python __new__用法及代碼示例
- Python __import__()用法及代碼示例
- Python __getslice__用法及代碼示例
- Python __rmul__用法及代碼示例
- Python __getitem__()用法及代碼示例
- Python __call__用法及代碼示例
- Python __exit__用法及代碼示例
- Python __init__用法及代碼示例
- Python __file__用法及代碼示例
- Python __len__()用法及代碼示例
- Python __repr__()用法及代碼示例
- Python __add__()用法及代碼示例
- Python String format()用法及代碼示例
- Python abs()用法及代碼示例
- Python any()用法及代碼示例
- Python all()用法及代碼示例
- Python ascii()用法及代碼示例
- Python bin()用法及代碼示例
- Python bool()用法及代碼示例
- Python bytearray()用法及代碼示例
- Python callable()用法及代碼示例
- Python bytes()用法及代碼示例
- Python chr()用法及代碼示例
- Python compile()用法及代碼示例
注:本文由純淨天空篩選整理自佚名大神的英文原創作品 __name__ (A Special variable) in Python。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。