Простые объяснения примерами будут делать то, где 3 из них не могут быть взаимозаменяемы.Python: различия между __setitem__; setattr; set
def __setitem__(self,**k):
#self.val=k
for key in k:
self.val.setdefault(key,[]).extend(v for v in k[key])
Может вышеописанный шаг сделать в итераций с SetAttr (объект, вал [может опционально вещи приходят сюда ??])
Почему бы просто не создать свой собственный стиль и частные методы?
def _add(self,**k):
if isinstance(self, CClass):
for key in k:
self.val.setdefault(key,[]).extend(v for v in k[key])
В: Где все возможности класса позволяют доступ к этим частным методам и их использование?
так что мой первый код действительно не распространяется, но добавляет право? – user2290820
@ user2290820 Я думаю, что расширение должно быть в порядке, но вы должны повиноваться, что используется правильная семантика: что должно произойти, если вы выполняете 'my_object [key] = something'. – glglgl
, потому что я хочу перейти к текущему списку, а не перезаписывать или заменять существующие. Он пытается найти способ динамически добавлять атрибуты. Есть ли способ? – user2290820