2016-04-30 127 views
0

__name__是做什麼用的?我只看到它與__main__配對,沒有別的。__name__的用途是什麼?

我知道經典的if __name__ == __main__:定義了當作爲一個包作爲獨立運行時的行爲。

然而,__name__有哪些其他用法?

+3

的[可能的複製是什麼,如果\ _ \ _名\ _ \ _ ==「\ _ \ _ main \ _ \ _」呢?](http://stackoverflow.com/questions/419163/what-does-if-name-main-do)。我意識到你提到了你對這種特殊用途的瞭解,但是接受的答案確實會給你你所尋求的答案。 – zondo

+4

'logger = logging.getLogger(__ name __)' –

+0

我沒有看到我想要的答案。 – drum

回答

3

__name__"__main__"如果您直接執行腳本。如果您要導入模塊,則__name__是模塊的名稱。

foo.py:

print(__name__) 

bar.py

import foo 

運行腳本:

$ python foo.py 
__main__ 
$ python bar.py 
foo 
+0

良好的編輯。只是澄清一下我自己。 –

+0

除了知道模塊的名字之外,還有其他用法嗎? – drum

+0

「if __name__ ='__main__'成語允許您根據腳本是直接調用還是作爲模塊來創建不同的行爲,這是最常見的用例,它可能在單元測試中用於調試或報告。 –