-1
通过示例的简单解释可以在三个不能互换的地方进行。Python:__setitem__之间的差异; setattr;设置
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])
问:所有类的范围都允许访问和使用这些私有方法吗?
所以你的意思是我的第一个代码实际上并没有扩展,但附加的权利? – user2290820 2013-05-14 12:16:34
@ user2290820我认为扩展应该是可以的,但是你应该服从使用正确的语义:如果你做'my_object [key] = something'会发生什么。 – glglgl 2013-05-14 12:24:58
,因为我想扩展到当前列表,而不是覆盖或替换现有ones.im试图找到一种方法来动态添加属性。有没有办法? – user2290820 2013-05-14 13:39:07