__iadd__魔术功能问题

时间:2017-10-22 00:50:09

标签: python dictionary

以下是名为Container的类中的一些代码 具有内置类型的额外功能的多功能数据值存储 有。 __iadd__函数无论出于何种原因,self等于None。然而, __add__函数似乎工作正常,other参数 不受影响。这个问题令我困惑,任何帮助都表示赞赏。

class Container():

    def __init__(self,list0,list1):
        self.list0,self.list1=list0,list1
        self.pairs=zip(list0,list1)
        self.items=dict(self.pairs)

    ...

    def __add__(self,other):
        dictionary=self.items
        other = other if type(other)==dict else other.items
        for k in other.keys():
            dictionary[k]=other[k]
        return dictionary

    ...

    def __iadd__(self,other):
        self.items=self+other

# >>> c2 = Container([11,12,13],['k','l','m'])
# >>> print container + c2
# {0: 'j', 1: 'a', 2: 'b', 3: 'c', 4: 'd', 5: 'e', 6: 'f', 7: 'g', 8: 'h', 9: 'i', 11: 'k', 12: 'l', 13: 'm'}
#
# Note: at this time the container does not equal None.
#
# >>> container+=c2
# >>> print container
# None

0 个答案:

没有答案