try: Polygon
except: from Polygon import Polygon
class Triangle(Polygon):
def __init__(self, width, height):
sides = 3
super().__init__(sides, width)
# self.__side2 = s2
# self.__side3 = s3
self.__height = height
def get_height(self):
"""Returns height"""
return self.__height
def set_height(self, height):
"""Sets the height"""
if height <= 0:
raise ValueError('Height must be positive')
self.__height = height
try: Triangle
except: from Triangle import Triangle, Polygon
儿童班
class IsocelesTriangle(Polygon):
def __init__(self, width, height):
# sides = 3
super().__init__ (width, height)
def get_area(self):
"""Gets the area of an isoceles triangle"""
area = ((1/2) * (self.get_width()) * (self.get_height()))
return area
def get_perimeter(self):
"""Returns the are of an isoceles triangle"""
p = (2 * self.get_width()) + self.get_height()
return p
所以我遇到的问题是Triangle类高于IsocelesTriangle类,有一个更高的多边形类,我从中得到宽度。但是我已经花了好几个小时才把高度从三角形中移到IsocelesTriangle类中,但它一直在抛出:
AttributeError: 'IsocelesTriangle' object has no attribute 'get_height'
任何线索都会非常感激。
答案 0 :(得分:0)
您的IsocelesTriangle
不会继承您的Triangle
课程。相反,它继承自Polygon
。因此,它不会看到get_height
函数。