point class help

r rt8396 at gmail.com
Wed Jan 14 17:31:07 CET 2009


before anybody say's anything, i screwed up when i pasted the code,
here is what i really have...

def method(self, other):
    if isinstance(other, Point2d):
        x, y = other.x, other.y
    else:
        x, y = other[0], other[1]
    return self.x+x, self.y+y


#and the fixed class :)
class Point2d():
    def __init__(self, x, y=None):
        if type(x) == tuple:
            self.x = x[0]
            self.y = x[1]
        else:
            self.x = x
            self.y = y
    def __str__(self):
        return 'Point2d(%f, %f)' %(self.x, self.y)
    def __add__(self, other):
        if isinstance(other, Point2d):
            x, y = other.x, other.y
        else:
            x, y = other[0], other[1]
        return (self.x+x, self.y+y)
    def __sub__(self, other):
        pass
    def __iadd__(self, other): #+=
        pass
    def __isub__(self, other): #-=
        pass

PS: i know i could have one method like

def get_xy(self, other):
    #conditional

and then call it like

x, y = self.get_xy(other)

but that seems pretty clumsy. There must be a more Pythonic way!



More information about the Python-list mailing list