1. 程式人生 > >Python中__name__屬性的妙用

Python中__name__屬性的妙用

-s mod 特點 ont __main__ span pytho 執行 自己

在Python中,每一個module文件都有一個built-in屬性:__name__,這個__name__有如下特點:

1 如果這個module文件是被別的文件導入的,那麽,該__name__屬性的值就是這個module文件的名字;

2 如果這個module文件是被當成程序來執行,那麽,該__name__屬性的值就是"__main__"

因此,在很多Python代碼中,__name__屬性被用來區分上述module文件被使用的兩種方式。一種常用的做法是將module文件自己的單測代碼,放到__name__屬性為"__main__"的情形中去。

比如,有test.py文件:

def tester():
    
print("It‘s Christmas in Heaven...") if __name__ == __main__: tester() # 調用單測代碼

如果這個文件是被其他文件導入的,那麽,tester函數不會執行:

>>>import test       # tester函數不會執行,除非顯示調用
>>>test.tester()
Its Chrismas in Heaven...

但是如果test.py被當成程序執行,那麽,tester函數會執行:

python test.py
It‘s Chrisma in Heaven...

Python中__name__屬性的妙用