Python Classes ( AttributeError: '' object has no attribute '')
Python Classes ( AttributeError: '' object has no attribute '')
无法理解我的代码中的问题,classes 的新手(通常也是 python,如果我说错了,很抱歉)。我收到此错误:
我觉得我的代码太冗长,无法包含在这里,所以我制作了一个简化版本来测试下面的概念。
问题是,如何创建一个新的自身对象 "self4"?然后 class 中的其他函数可以使用它。目前我收到此错误。
AttributeError: 'className' object has no attribute 'self4'
class className(object):
def __init__(self, self1=1,self2=2,self3=3):
self.self1=self1
self.self2=self2
self.self3=self3
def evaluate(self, self5):
print className.func1(self) + className.func2(self)
self.self5=self5
print className.func1(self)
def func1(self):
return self.self1 + self.self5
def func2(self):
self.self4 = self.self1+self.self2+self.self3
return self.self4
文件名tester.py
import tester.py
mst=tester.className()
mst.evaluate()
您应该在方法中传递 self4
。
编辑:
您的代码工作正常!
问题是什么?
我还是觉得把self4
移到init里面比较好!
原版
我认为最合乎逻辑的事情是在 init:
上定义 self4
class className(object):
def __init__(self, self1=1, self2=2, self3=3):
self.self1 = self1
self.self2 = self2
self.self3 = self3
self.self4 = None
#rest of class
如果还有人遇到这个问题:当你的缩进是 goofed.To 时会出现这个错误 修复上面提出的问题,你只需要在最后两个函数定义之前添加一个 space ,即是;
class class名称(对象):
def __init__(self, self1=1,self2=2,self3=3):
self.self1=self1
self.self2=self2
self.self3=self3
def evaluate(self, self5):
print className.func1(self) + className.func2(self)
self.self5=self5
print className.func1(self)
def func1(self):
return self.self1 + self.self5
def func2(self):
self.self4 = self.self1+self.self2+self.self3
return self.self4
只要确保它们都有相似的缩进,就可以开始了。
无法理解我的代码中的问题,classes 的新手(通常也是 python,如果我说错了,很抱歉)。我收到此错误:
我觉得我的代码太冗长,无法包含在这里,所以我制作了一个简化版本来测试下面的概念。
问题是,如何创建一个新的自身对象 "self4"?然后 class 中的其他函数可以使用它。目前我收到此错误。
AttributeError: 'className' object has no attribute 'self4'
class className(object):
def __init__(self, self1=1,self2=2,self3=3):
self.self1=self1
self.self2=self2
self.self3=self3
def evaluate(self, self5):
print className.func1(self) + className.func2(self)
self.self5=self5
print className.func1(self)
def func1(self):
return self.self1 + self.self5
def func2(self):
self.self4 = self.self1+self.self2+self.self3
return self.self4
文件名tester.py
import tester.py
mst=tester.className()
mst.evaluate()
您应该在方法中传递 self4
。
编辑:
您的代码工作正常!
问题是什么?
我还是觉得把self4
移到init里面比较好!
原版
我认为最合乎逻辑的事情是在 init:
self4
class className(object):
def __init__(self, self1=1, self2=2, self3=3):
self.self1 = self1
self.self2 = self2
self.self3 = self3
self.self4 = None
#rest of class
如果还有人遇到这个问题:当你的缩进是 goofed.To 时会出现这个错误 修复上面提出的问题,你只需要在最后两个函数定义之前添加一个 space ,即是; class class名称(对象):
def __init__(self, self1=1,self2=2,self3=3):
self.self1=self1
self.self2=self2
self.self3=self3
def evaluate(self, self5):
print className.func1(self) + className.func2(self)
self.self5=self5
print className.func1(self)
def func1(self):
return self.self1 + self.self5
def func2(self):
self.self4 = self.self1+self.self2+self.self3
return self.self4
只要确保它们都有相似的缩进,就可以开始了。