您可以在許多python代碼中看到__name__變量。
對于 Python 的初次使用用戶來說可能對這個變量不是非常熟悉。
這樣理解就好了,__name__ 這個變量就是一個標(biāo)識 Python 程序的全局變量。
我們都知道 Python 是沒有 main() 函數(shù)的,如果你對 main 函數(shù)不是非常熟悉的話,可以自行腦補(bǔ)下。簡單來說就是所有程序在運(yùn)行的時候都需要一個入口,main 函數(shù)就是程序的入口,通常就是在程序啟動后的入口,所有的程序都是從 main 函數(shù)開始執(zhí)行的。
__name__ 就是一個構(gòu)建到 Python 解釋器中的變量,用于標(biāo)識當(dāng)前運(yùn)行模塊的名稱。
這個與 Java 中的 ().getName() 有點類似。
實例和測試
我們下面可以進(jìn)行一些實例和測試。
假設(shè)我們有下面 2 個文件。
Im
這個文件是被作為模塊導(dǎo)入的。文件的源代碼如下:
# -*- coding: utf-8 -*-
# PPython __name__ module ImportVarName
# Author -
print("ImportVarName __name__ = %s" % __name__)
if __name__ == "__main__":
print("ImportVarName is being run directly")
else:
print("ImportVarName is being imported")
VarName.py
這個文件可以考慮的是我們的主函數(shù)文件。
文件的源代碼如下:
# -*- coding: utf-8 -*-
# Python __name__ module Test
# Author -
import ImportVarName
print("Main VarName __name__ = %s" % __name__)
if __name__ == "__main__":
print("VarName is being run directly")
else:
print("VarName is being imported")
運(yùn)行結(jié)果和解讀
對上面的運(yùn)行結(jié)果進(jìn)行一些解讀如下。
如果我們直接運(yùn)行源代碼:VarName.py,我們會得到下面的輸出。
ImportVarName __name__ = ImportVarName
ImportVarName is being imported
Main VarName __name__ = __main__
VarName is being run directly
Process finished with exit code 0
可以看到是因為我們從我們認(rèn)為的主函數(shù)運(yùn)行的,但是在主函數(shù)運(yùn)行之前,我們導(dǎo)入了模塊 ImportVarName,因此在模塊 ImportVarName 中的 __name__ 變量將會被定義為你導(dǎo)入的模塊的名稱。
如果你直接運(yùn)行導(dǎo)入的模塊 ImportVarName 的話,模塊 ImportVarName 中的 __name__ 將會顯示為 __main__。
1.《#NAME?看這里!Python 的特殊變量 __name__》援引自互聯(lián)網(wǎng),旨在傳遞更多網(wǎng)絡(luò)信息知識,僅代表作者本人觀點,與本網(wǎng)站無關(guān),侵刪請聯(lián)系頁腳下方聯(lián)系方式。
2.《#NAME?看這里!Python 的特殊變量 __name__》僅供讀者參考,本網(wǎng)站未對該內(nèi)容進(jìn)行證實,對其原創(chuàng)性、真實性、完整性、及時性不作任何保證。
3.文章轉(zhuǎn)載時請保留本站內(nèi)容來源地址,http://f99ss.com/lishi/2098329.html