如何创建一个
__init__
方法,该方法将两个点类型的对象作为输入(左下角和右上角)和一个颜色字符串
即
r1= Rectangle(Point(0,0), Point(1,1), 'blue')
r1.get_bottom_left() --> Point(0,0)
到目前为止我已经:
class Rectangle:
def __init__(self, PointbL, PointtR, 'color'):
self.bL = PointbL
self.tR = PointtR
self.bLx= PointbL[0]
self.bLy= PointbL[1]
self.tRx= PointtR[0]
Self.tRy= PointtR[1]
self.color='color'
我刚刚了解了类方法,所以我不确定如何做到这一点,但这对我来说看起来是错误的...我试图用下面发布的问题的答案来找出答案,但我认为我做得不对
__init__
应该有可变参数,而不是特定类型。为了支持索引,您需要在 Point 中实现额外的特殊方法,但我认为在您的代码中没有必要。此外,我会推荐像 topleft
这样的名称,而不是 tL
,因为它会提高可读性。
class Point:
def __init__(self, x, y):
self.x = x
self.y = y
class Rectangle:
def __init__(self, bottomleft, topright, color): # variable parameters
self.bottomleft = bottomleft # no need for self.bottomright_x
self.topright = topright # access x by rectangle.topright.x
self.color = str(color) # cast to a string
如果必须,您可以在 init 中添加断言,以确保传入 Rectangle 的参数是 Points。
assert isinstance(bottomright, Point), 'Must enter a Point'