基本上我有一個項目設置像這樣:解釋認爲,同一類的兩個聲明都是不同
<container-folder>
|- <folder_1>
|- <extra_folder>
| |- source.py
|
|- main.py
而在main.py
我聲明一個類,像這樣:
class ClassOne:
pass
,並在另一方法在main.py
我有以下代碼:
result = source_function()
if not isinstance(result, ClassOne):
print "failed!"
在source.py
,我定義
import container-folder.folder_1.main
...
def source_function():
return main.ClassOne()
但是,我仍然得到"failed!"
打印出來。當在調試器檢查,我得到了一個有點古怪的驚喜:
result
被標記爲container-folder.folder_1.main.ClassOne
類型,ClassOne
有簽名main.ClassOne
。爲什麼這兩個不被認爲是平等的?
我也注意到,如果我改變了代碼以下,使用其完全限定類名:
if not isinstance(result, container-folder.folder_1.main.ClassOne):
我得到預期的成功。