Doesn't know what it wants

Tim Rau bladedpenguin at gmail.com
Sat Jan 26 17:02:09 EST 2008


On Jan 26, 2:52 am, John Machin <sjmac... at lexicon.net> wrote:
> On Jan 26, 6:25 pm, Steven D'Aprano <st... at REMOVE-THIS-
>
>
>
> 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 <asmo... at in-
> > > nomine.org> wrote:
> > >> -On [20080126 06:26], Tim Rau (bladedpeng... at gmail.com) 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
> """

Ok, so apparently, it needs a different vec2d, one which is
specifically modified vec2d to work with the library Chipmunk, which
is a c library, but with pindings binding(PyMunk)



More information about the Python-list mailing list