我创建了一个Point类,该类使用x,y坐标作为参数。我还想创建一个Linestring类,该类接受用户想要的任意数量的参数并将其存储为点。到目前为止:
class Point(object):
def __init__(self,x,y):
self.x = x
self.y = y
def move(self,movex,movey):
self.x += movex
self.y += movey
class LineString(object):
def __init__(self, *args):
self.points = [Point(*p) for p in args]
所以现在我在self.points中存储了一个点列表。 问题是如何在类线串中使用点的移动功能。 我尝试过类似的方法,但是它不起作用
def moveline(self,movex,movey):
self.points.move(movex,movey)
答案 0 :(得分:0)
要确切说明@MichaelButscher在评论中所说的内容,您的moveline
函数的问题是self.points
是Point
对象的列表比Point
对象本身。因此,我们需要遍历此列表并为每个move
对象调用Point
函数。这可以通过for
循环来完成。您更新后的moveline
函数如下所示:
def moveline(self,movex,movey):
for point in self.points:
point.move(movex,movey)