如何创建一个__init__
方法,它将两个point类型的对象作为输入(左下角和右上角)和一个颜色的字符串
即。
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'
我刚刚学习了类方法,所以我不确定如何做到这一点但这对我来说是错误的...我试图用以下问题的答案来解决它但我不认为我做到了右
Creating a python Rectangle object class that can print the corner coordinates
答案 0 :(得分:0)
__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'