2011-01-19 68 views
2
class UserDict: 
    def __init__(self, dict=None):    
     self.data = {}       
     if dict is not None: self.update(dict) 

我創建了一個文件「abc.py」並放在上面。爲什麼這個Python不工作?簡單的OOP

>>> import abc 
>>> d = abc.UserDict() 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
AttributeError: 'module' object has no attribute 'UserDict' 

回答

7

大多數肯定要導入的Python的abc模塊抽象基類,而不是你自己的abc.py。最好爲你的模塊選擇一個不同的名字。

編輯:當然它可能有自己的模塊與內置模塊具有相同的名稱,並導入它。您必須確保您的模塊位於解釋器的工作目錄中或正確設置Python路徑。但避免名稱衝突要容易得多 - 特別是在這種情況下,無論如何你可能根本不在乎模塊的名字。

+2

是的,你可能沒有導入你認爲你的abc。 `打印abc .__ file__`來檢查。 – TryPyPy 2011-01-20 00:00:44

相關問題