2012-03-20 104 views
3

我有這樣的小白錯誤,的Python XX實例沒有屬性YY

l = instanciaHagale.multiplicaMethod() AttributeError: Hagale instance has no attribute 'multiplicaMethod' 

這裏我的代碼:

class Hagale : 
    def __init__(self, a): 
     self.a = a 
     print self.a 

     self.sumaleAlgo = self.a+34543 #variable creada on the fly! 

     def multiplicaMethod (self): 

      return 'self.cuadradoReal' 
      #self.cuadradoReal = self.a * 2 

instanciaHagale = Hagale(345) 

print instanciaHagale.sumaleAlgo #acceso a las variables de mi objeto! 

l = instanciaHagale.multiplicaMethod() 

print l 

回答

3
def __init__(self, a): 
     # ... 

     def multiplicaMethod (self): 

最後的def是縮進錯誤。減少縮進它,所以它是在同一水平def __init__(self, a):,像這樣:

class Hagale(object): 
    def __init__(self, a): 
     self.a = a 
     print self.a 
     self.sumaleAlgo = self.a+34543 #variable creada on the fly! 

    def multiplicaMethod (self): # <-- moved to the left 
     return 'self.cuadradoReal' 

另外請注意,您的代碼使用classic classes。這可能不是你想要的,但這是一個簡單的解決方案 - 只需從object繼承。

3

multiplicaMethod()__init__方法的內部定義。它縮進太多了。將它移動到左邊,以便它在課程內部。

1

multiplicaMethod應該向左縮進。現在它是init中的一個本地函數。

相關問題