python运算符重载和朋友

时间:2011-03-25 21:59:03

标签: python overloading operator-keyword


我想知道是否有人可以给我一个如何在类中重载运算符的示例,在我的例子中是+运算符。我可以定义一个函数(不是类方法)吗?我是新手,所以我真的不知道怎么做。

由于

3 个答案:

答案 0 :(得分:3)

定义其__add__()方法。

请参阅here

答案 1 :(得分:2)

class MyNum(object):
    def __init__(self, val):
        super(MyNum,self).__init__()
        self.val = val

    def __add__(self, num):
        return self.__class__.(self.val + num)

    def __str__(self):
        return self.__class__.__name__ + '(' + str(self.val) + ')'

print(MyNum(3) + 2)   # -> MyNum(5)

答案 2 :(得分:2)

如果对基础知识有疑问:手动。 http://docs.python.org/reference/datamodel.html