Python编程帮助初学者?

时间:2013-02-17 20:28:36

标签: python methods area

所以我需要找到矩形的区域。我必须在Rectangle类中添加一个名为“CalcArea()”的方法,该方法将宽度*高度相乘。我不知道如何做到这一点,我迷失了这本书并没有解释如何做到这一点。这是我的代码:

class Point():
    x = 0.0
    y = 0.0

    def __init__(self, x, y):
        self.x = x
        self.y = y
        print("Point Constructor")

    def ToString(self):
        return "{X:" + str(self.x) + ",Y:" + str(self.y) + "}"

class Ellipse(Point):
    radiusV = 0.0
    radiusH = 0.0

    def __init__(self, x, y, radiusV, radiusH):
        super().__init__(x,y)
        self.radiusV = radiusV
        self.radiusH = radiusH
        print("Ellipse Constructor")

    def ToString(self):
        return super().ToString() + \
                ",{Radius: Vertical = " + str(self.radiusV) + ", Radius: Horizontal = " +     str(self.radiusH) + "}"
p = Point(50,50)
print(p.ToString())
e = Ellipse(80,80,60,80)
print(e.ToString())

class Size():
    width = 0.0
    height = 0.0

    def __init__(self, width, height):
        self.width = width
        self.height = height
        print ("Size Constructor")

    def ToString(self):
        return "{Width = " + str(self.width) + \
               ", Height = " + str(self.height) + "}"

class Rectangle(Point, Size):
    area = 0.0

    def __init__(self, x, y, width, height):
        Point.__init__(self,x,y)
        Size.__init__(self,width,height)
        print("Rectangle Constructor")


    def ToString(self):
        return Point.ToString(self) + "," + Size.ToString(self) + 
s = Size (80,70)
print(s.ToString())

r = Rectangle(200,250,40,50)
print(r.ToString())

1 个答案:

答案 0 :(得分:2)

Rectangle课程中使用以下方法

def calcArea(self):
    return self.width * self.height

要打印该区域,只需致电 print mRectangle.calcArea()

其中mRectangleRectangle类的实例。

self.widthself.height可供您使用,因为Rectangle继承自Size类,Size包含实例变量width和{{} 1}}在其构造函数中正确设置。由于heightRectangle的子类,因此可以使用这些值。

此外,您在大小课程中的Sizewidth = 0可能无法完全按照您的想法行事。它们是Python中的静态或类变量,与height = 0self.width完全不同以下是一个示例

self.height

在python中,您可以使用语法>>> class MyClass(): ... a = 0 ... def __init__(self): ... self.a = 5 ... def echo(self): ... print MyClass.a, self.a ... >>> instance = MyClass() >>> instance.echo() 0 5 >>> instance.a 5 >>> MyClass.a 0 >>> 访问类或静态变量,并且可以在不创建该类对象的情况下访问它们。其中,只能使用类的实例调用实例变量。