-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