2024-04-19 02:55:24 发布
网友
错误是:
Equilateral object has no attribute angle1.
请建议如何修复此错误,也请解释self是如何工作的。我很困惑在哪里可以使用自我,在哪里不可以
您必须从超级类调用__init__:
__init__
class Triangle(object): number_of_sides=3 def __init__(self,angle1,angle2,angle3): self.angle1=angle1 self.angle2=angle2 self.angle3=angle3 def check_angles(self): return self.angle1+self.angle2+self.angle3==180: class Equilateral(Triangle): angle=60 def __init__(self): Triangle.__init__(self, self.angle, self.angle, self.angle) man=Equilateral() man.check_angles()
与其他语言不同,Python不调用超级类的__init__()。你得自己叫它:
__init__()
class Equilateral(Triangle): angle=60 def __init__(self, ...): super().__init__(...) self.angle=self.angle1
更多details
你错了方向
self.angle1= self.angle etc
Self引用实例化的对象,很像java中的“this”。使用此关键字将属性附加到对象。在
在对象上定义变量时,类定义开始处的属性不需要self—它们是对象的所有实例在实例化时创建的类属性,而使用self更改或设置的变量是实例变量,并不是在对象的所有实例上都能找到的。在
您必须从超级类调用
__init__
:与其他语言不同,Python不调用超级类的
__init__()
。你得自己叫它:更多details
你错了方向
Self引用实例化的对象,很像java中的“this”。使用此关键字将属性附加到对象。在
在对象上定义变量时,类定义开始处的属性不需要self—它们是对象的所有实例在实例化时创建的类属性,而使用self更改或设置的变量是实例变量,并不是在对象的所有实例上都能找到的。在
相关问题 更多 >
编程相关推荐