的Python XX实例没有属性YY

问题描述:

我有这样的小白错误,的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 

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继承。

multiplicaMethod()__init__方法的内部定义。它缩进太多了。将它移动到左边,以便它在课程内部。

multiplicaMethod应该向左缩进。现在它是init中的一个本地函数。