【问题标题】:python operator overload and friendspython运算符重载和朋友
【发布时间】:2011-03-25 21:59:03
【问题描述】:


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

谢谢

【问题讨论】:

  • 作为一个新手并不能真正解释你为什么不搜索。没有冒犯的意思 - 通常在提问之前先进行搜索符合自己的最大利益,因为人们通常会在更短的时间内获得更多答案。

标签: python overloading operator-keyword


【解决方案1】:

定义其__add__() 方法。

here

【讨论】:

    【解决方案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】:

      当对基础有疑问时:手动。 http://docs.python.org/reference/datamodel.html

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多