Rick Johnson wrote: > On Monday, June 10, 2013 8:18:52 AM UTC-5, Rui Maciel wrote: >> [...] >> >> <code> >> class Point: >> position = [] >> def __init__(self, x, y, z = 0): >> self.position = [x, y, z] > > Firstly. Why would you define a Point object that holds it's x,y,z values > in a list attribute? Why not store them as self.x, self.y and self.z? <snip/>
The position in space is represented as a vector, which is then used in a series of operations. Currently I'm using numpy arrays to represent vectors. > Secondly, why would store the position of the Point as a class attribute? <snip/> I've answered this 3 days ago. I'm still learning Python, and python.org's tutorial on classes didn't explicitly covered the differences between class and instance attributes. > If you construct your code properly this can be achieved. If each point is > an object, and lines are merely holding references to two point objects > that define the start and end position of an imaginary "line", then > updates on the points will be reflected in the Line object. This was already covered three days ago in another post in this thread. I'll quote the post below <quote> I've tested the following: <code> model = Model() model.points.append(Point(1,2)) model.points.append(Point(1,4)) line = Line( model.points[0], model.points[1]) # Case A: this works model.points[0].position = [2,3,4] line.points # Case B: this doesn't work test.model.points[0] = test.Point(5,4,7) line.points </code> Is there a Python way of getting the same effect with Case B? </quote> Rui Maciel -- http://mail.python.org/mailman/listinfo/python-list