Python:__ setitem__之间的差异; setattr;组

时间:2013-05-14 11:31:01

标签: python class attributes setattr

通过例子的简单解释可以做到其中3个不能互换的地方。

def __setitem__(self,**k):
        #self.val=k
        for key in k:
            self.val.setdefault(key,[]).extend(v for v in k[key])

上述步骤是否可以在setattr迭代中完成(obj,val [,可选的东西可以来这里吗?])

为什么不只是创建我们自己的样式和私有方法?

def _add(self,**k):
    if isinstance(self, CClass):
        for key in k:
            self.val.setdefault(key,[]).extend(v for v in k[key])

问:哪个类的范围允许访问和使用这些私有方法?

1 个答案:

答案 0 :(得分:1)

__setitem__只能用于设置一个项目:

def __setitem__(self, key, value):
    self.val.setdefault(key,[]).append(value)

如果您希望通过一次调用一次扩展所有内容,则可以构建类似dict的{​​{1}}方法,该方法采用可迭代和/或关键字参数:

.update()