0
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
所以我有一個問題,即三角類比IsocelesTriangle類高,有一個多邊形類高了,我得到的寬度那。不過,我一直試圖小時到達的高度了三角到IsocelesTriangle類,但它不斷拋出:
AttributeError: 'IsocelesTriangle' object has no attribute 'get_height'
任何線索將不勝感激。
您的isosceles類繼承自Polygon,而不是Triangle。你期望它從哪裏得到'get_height'方法? – BrenBarn
我花了一個多小時才知道我的一切都正確。謝謝 – Luis
順便說一句:您是否知道classig OOP問題如何模擬圓和橢圓或矩形和正方形?它看起來好像你的兩個三角形有類似的問題......也就是說,你應該花了十分鐘提取一個最小(!)的例子。我相信你會注意到你的錯誤。 –