On Jan 26, 6:25 pm, Steven D'Aprano <[EMAIL PROTECTED] cybersource.com.au> wrote: > On Fri, 25 Jan 2008 22:53:16 -0800, John Machin wrote: > > On Jan 26, 5:32 pm, Jeroen Ruigrok van der Werven <[EMAIL PROTECTED] > > nomine.org> wrote: > >> -On [20080126 06:26], Tim Rau ([EMAIL PROTECTED]) wrote: > > >> >Line 147 reads: > >> > moi = cp.cpMomentForCircle(self.mass, .2, 0, vec2d((0,0))) > > >> I think it expects something like: > > >> # badly named variable, pick something better depending on context > >> temp = vec2d(0, 0) > >> cp.cpMomentForCircle(self.mass, .2, 0, temp) > > > That *cannot* give a different result in Python. The called function > > will be presented with *exactly* the same object as the OP's code does. > > Not quite. Look carefully at the difference. > > The OP's code calls vec2d with a single tuple argument (0,0). Jeroen's > version calls vec2d with two int arguments, 0 and 0. > > We don't know whether vec2d will treat those two things the same or not.
That was Jeroen's 2nd problem; I was addressing his first problem (thinking that introducing a temp variable would work some magic). Google is your friend: """ class vec2d(ctypes.Structure): """2d vector class, supports vector and scalar operators, and also provides a bunch of high level functions """ __slots__ = ['x', 'y'] def __init__(self, x_or_pair, y = None): if y == None: self.x = x_or_pair[0] self.y = x_or_pair[1] else: self.x = x_or_pair self.y = y """ -- http://mail.python.org/mailman/listinfo/python-list