2015-12-01 102 views
0

我已被賦予一項任務,要求我們處理三個單獨的類別:Point,RectangleCanvas。我只是想知道是否有人可以幫助我理解他們如何互動。編程語言是Python 3超級和小類

這裏有預期的產出:

>>>r1=Rectangle(Point(), Point(1,1), "red") 
>>>r1 
Rectangle(Point(0,0),Point(1,1),'red') 

另一個例子是:

>>> r3=Rectangle(Point(), Point(2,1), "red") 
>>> r3.get_perimeter() 
6 
+0

這是什麼語言?蟒蛇? – WalterM

+0

是的,我應該補充一點! –

+1

'Point'聽起來像是一種'Rectangle'嗎? 「Canvas」聽起來像是一種「Point」嗎?這些東西中的任何一個看起來像是作爲一種特殊的其他東西而被合理地實施?沒有?那麼它們之間不應該有任何超級/子類關係。 – user2357112

回答

0

你會得到A類型的對象和其他類型之間的相互作用,如果你問自己:需要定義類型A的對象是什麼?

Rectangle可能的實現方式之一是通過兩個相對的角落定義矩形,這些角落是平面中的點,可以是Point類型。 Point本身,可以表示爲一對數字。現在明顯的定義是

class Point(): 
    def __init__(self, x, y): 
     self.xCoordinate = x 
     self.yCoordinate = y 



class Rectangle(): 
    def __init__(self, southwest, northeast, colour): 
     self.bottomLeftCorner = southwest 
     self.upperRightCorner = northeast 
     self.fill = colour 

,你可以定義

rect = Rectangle(Point(0,1), Point(4,212), "red") 

繼上定義,定義Rectangle,一個需要兩個Point對象和一個String。不涉及超類/子類關係。

由於您沒有提供任何Canvas的例子,我無法幫到您,但我認爲您可以自己做。

+0

非常感謝!至少現在我知道自己正處在正確的軌道上,所以我開始按照自己的想法開展工作 –