Python XX实例没有属性YY

时间:2012-03-20 11:52:06

标签: python

我有这个noob错误,

   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 个答案:

答案 0 :(得分:3)

您的multiplicaMethod()是在__init__方法内定义的。它缩进得太远了。将它移到左边,使其在类内部。

答案 1 :(得分: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继承。

答案 2 :(得分:1)

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