在python中扩展类定义(在库中定义)

时间:2018-06-08 21:30:58

标签: python-3.x class overloading

如何在Python 3.x中扩展类的定义?

我有一个库文件graphics.py,其中以这种方式定义了一个Point类:

class Point(GraphicsObject):
    def __init__(self, x, y):
        GraphicsObject.__init__(self, ["outline", "fill"])
        self.setFill = self.setOutline
        self.x = x
        self.y = y

    def _draw(self, canvas, options):
        x,y = canvas.toScreen(self.x,self.y)
        return canvas.create_rectangle(x,y,x+1,y+1,options)

    def _move(self, dx, dy):
        self.x = self.x + dx
        self.y = self.y + dy

    def clone(self):
        other = Point(self.x,self.y)
        other.config = self.config.copy()
        return other

    def __str__(self):
        return "Point({0}, {1})".format(self.x, self.y)

    def getX(self): return self.x
    def getY(self): return self.y

我想扩展定义以将两个点的总和定义为一个点,其x和y坐标分别为给定点的x和y坐标的总和。

我试过

import graphics as gr

class Point(gr.Point):
    def __add__(self, another_point):
        return point((self.x+another_circle.x), (self.y+another_circle.y))

但这没有帮助,它给了我一个新的课程而不是扩展gr.Point的定义

提前致谢!!

0 个答案:

没有答案