我想知道是否有人能给我一个例子,说明如何在一个类中重载一个运算符,在我的情况下是+运算符。我可以定义一个函数吗(不是类方法)吗?我是一个新手,所以我不知道该怎么做。python operator overload and friends
感谢
我想知道是否有人能给我一个例子,说明如何在一个类中重载一个运算符,在我的情况下是+运算符。我可以定义一个函数吗(不是类方法)吗?我是一个新手,所以我不知道该怎么做。python operator overload and friends
感谢
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)
定义其__add__()
方法。
请参阅here。
如果对基本的疑问:手动。 http://docs.python.org/reference/datamodel.html
作为一个新手没有真正解释你为什么不搜索。没有冒犯的意思 - 在询问之前进行搜索通常最符合人们的兴趣,因为人们通常在更短的时间内获得更多的答案。 – delnan 2011-03-25 22:01:23
涵盖在这里:http://stackoverflow.com/questions/1552260/rules-of-thumb-for-when-to-use-operator-overloading-in-python – 2011-03-25 22:30:59