class Line(Tool): def init(self, xy): self.end = Point(*xy) def ident(self): return self.id, (self.point.ident(), self.end.ident())
class Tool(object): @classmethod def assign(cls, value): cls.id = value return cls def __init__(self, xy, *args, **kwargs): self.point = Point(*xy) self.init(*args, **kwargs) def init(self, *args, **kwargs): ''' personal tool init, override it ''' def ident(self): return self.id, (self.point.ident())