2011-03-25 78 views
0


我想知道是否有人能给我一个例子,说明如何在一个类中重载一个运算符,在我的情况下是+运算符。我可以定义一个函数吗(不是类方法)吗?我是一个新手,所以我不知道该怎么做。python operator overload and friends

感谢

+3

作为一个新手没有真正解释你为什么不搜索。没有冒犯的意思 - 在询问之前进行搜索通常最符合人们的兴趣,因为人们通常在更短的时间内获得更多的答案。 – delnan 2011-03-25 22:01:23

+0

涵盖在这里:http://stackoverflow.com/questions/1552260/rules-of-thumb-for-when-to-use-operator-overloading-in-python – 2011-03-25 22:30:59

回答

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) 
3

定义其__add__()方法。

请参阅here