的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中的一个本地函数。