2013-07-02 161 views
5

我一直認爲__file__變量總是給你當前的文件名,但這看起來並不像它所做的那樣。因爲如果我認爲這是真的,我一直在面對一個bug。Python的__file__實際上做了什麼?

有人告訴我「__file__是指最後搜索的模塊」 這似乎更準確,但我想知道__file__真的應該做什麼。

我找不到在Python文檔中提到的任何具體內容。 很多地方似乎都提到它,但並不十分清楚。

http://docs.python.org/2/c-api/import.html?highlight=__file__

http://docs.python.org/2/c-api/module.html?highlight=__file__

+8

這可能幫助:http://stackoverflow.com/questions/7116889/python-file-attribute-absolute-or -relative –

+3

*有人告訴我「'__file__'是指最後搜索的模塊」*有人錯了,恐怕。 –

+0

@MartijnPieters哈,以及我只是用它作爲我不清楚'__file__'的例子 – ffledgling

回答

3
__file__ is the pathname of the file from which the module was loaded, if it was loaded from a file. The __file__ attribute is not present 
for C modules that are statically linked into the interpreter; for 
extension modules loaded dynamically from a shared library, it is the 
pathname of the shared library file. 

從這裏: http://mail.python.org/pipermail/python-dev/2010-February/097461.html

相關問題