0

だから私は長方形の領域を見つける必要があります。width * heightを乗算する「CalcArea()」というメソッドをRectangleクラスに配置する必要があります。私にはこれを行う方法の手がかりがなく、私は迷子になっているので、この本はこれを行う方法をまったく説明していません。これが私のコードです:

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

ここで、はクラスmRectangleのインスタンスです。Rectangle

self.widthクラスself.heightからRectangle継承し、インスタンス変数を持ち、コンストラクターで適切に設定されるため、使用できます。はのサブクラスであるため、これらの値を使用できます。SizeSizewidthheightRectangleSize

また、あなたwidth = 0height = 0in 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 に答える