2012-10-08 36 views
2

我已搜索周圍有類似問題的其他線程對象時不可調用,但我沒有找到答案。基本上,我有一個類:類型錯誤:製作實例

import Android_Class 

class Android_Revision(object): 

    def __init__(self): 
     # dict for storing the classes in this revision 
     # (format {name : classObject}): 
     self.Classes = {} 
     self.WorkingClass = Android_Class() 
     self.RevisionNumber = '' 

    def __call__(self): 
     print "Called" 

    def make_Class(self, name): 
     newClass = Android_Class(name) 
     self.Classes.update({name : newClass}) 
     self.WorkingClass = newClass 

    def set_Class(self, name): 
     if not(self.Classes.has_key(name)): 
      newClass = Android_Class(name) 
      self.Classes.update({name : newClass}) 
     self.WorkingClass = self.Classes.get(name) 

我試圖使這個類的一個實例:

Revision = Android_Revision() 

而且當我得到錯誤的。我很困惑,因爲我有另一種情況,我幾乎完全一樣,而且工作正常。我無法弄清楚兩者之間的差異會導致這個錯誤。謝謝。

+0

'Android_Class'是模塊的名稱。你確定你不是故意寫'從Android_Class導入Android_Class'或類似的東西嗎? – Cameron

+0

錯誤的確切內容(消息)是什麼?它引用了哪一行? 「幾乎完全相同的東西」是什麼樣的? – Tadeck

回答

3

我第二次的評論,這個問題缺乏重要信息,如果這個錯誤並不出奇常見,寧願與衆不同的症狀,我將無法提供任何類似的回答。

Python的上{文件,模塊}和類圖是從Java的完全不同。模塊是比組織更高級別的組織單位。具體來說,一個模塊可以包含任何數量的類(在許多其他事物中)。 import處理模塊,而不是類。 import foo爲您提供該名稱的模塊,而不管該名稱的任何類別。如果你必須具有相同名稱的模塊中的類(很多時候,這是過度使用類或忽略模塊爲組織單位的標誌),你要麼訪問它Foo.Foo或者你from Foo import Foo

順便說一下,模塊名稱應該是lower_case,而類名稱應該是PascalCase。不要混合兩者。其他約定也請閱讀PEP 8

+0

啊,我很抱歉提出這樣一個愚蠢的問題。我的問題肯定來自Java環境下的類/模塊的思考,並且您的簡單解釋非常有用。我解決了這個問題。 – TSM

相關問題