通过写+运算符按值添加字典

时间:2019-08-23 08:16:36

标签: python dictionary operator-overloading operators

我想为字典编写+运算符。

我知道在like here之前也曾问过类似的问题,但是我想为字典写+运算符。

我知道可以在Python的自定义类中重载运算符。但是,我没有找到如何在内置类中重载运算符(如果确实可行)。而且由于+运算符未在Python中为字典定义,所以我想知道这是否完全可能?

我认为在SO上没有问过这个问题,因为我找不到类似的东西。也许我只是没有找到合适的条件来搜索它。 Another link that might be useful for that question

1 个答案:

答案 0 :(得分:0)

我猜您想做的就是对字典实现add方法-您可能想使用自己的逻辑,我在这里使用update方法来添加。您将必须继承并重载add方法才能实现此目的。这是方法。

class dicti(dict):
    def __add__(self, obj):
        temp = {}
        temp.update(self)
        temp.update(obj)
        return temp
a = dicti({'a':1,'b':2})
b = dicti({'c':2})
c = a+b
print(a) #outputs -> {'a': 1, 'b': 2}
print(b) #outputs -> {'c':2}
print(c) #outputs -> {'a': 1, 'b': 2, 'c': 2}