0

所以我需要找到矩形的面积。我必须在 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())
4

1 回答 1

2

在您的Rectangle班级中使用以下方法

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

要打印该区域,只需调用 print mRectangle.calcArea()

wheremRectangleRectangle类的一个实例。

self.width并且由于从类继承并具有实例变量并在其构造函数中适当设置,self.height因此可供您使用。这些值可供您使用,因为它是.RectangleSizeSizewidthheightRectangleSize

此外,你的width = 0height = 0在 Size 类中可能不会完全按照你的想法做。self.width它们是 Python 中的静态变量或类变量,与和完全不同。self.height这里有一个例子来说明

>>> 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
>>> 

在 python 中,您可以使用语法访问类或静态变量,ClassName.Variable并且无需创建该类的对象即可访问。其中作为实例变量只能用类的实例调用。

于 2013-02-17T20:34:33.503 回答