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
Дочерний классPython Иерархия передавая функции
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'
Любые выводы будут весьма благодарны.
Ваш isosceles класс наследует от Polygon, а не от треугольника. Где вы ожидаете получить метод get_height? – BrenBarn
Я потратил более часа, зная, что у меня все в порядке. Спасибо – Luis
BTW: Знаете ли вы, что вопрос о классификаторе ООП, как моделировать круг и эллипс, прямоугольник и квадрат? Похоже, что ваши два треугольника имеют схожие проблемы ... Тем не менее, вы должны были потратить десять минут на извлечение минимального (!) Примера. Я уверен, вы заметили бы свою ошибку. –