传递函数的Python层次结构

时间:2015-09-17 05:40:52

标签: python class-hierarchy

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'

任何线索都会非常感激。

1 个答案:

答案 0 :(得分:0)

您的IsocelesTriangle不会继承您的Triangle课程。相反,它继承自Polygon。因此,它不会看到get_height函数。