我有这个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
答案 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 中的本地函数。