def setattrs(_self, **kwargs):
for k,v in kwargs.items():
setattr(_self, k, v)
Используйте эту функцию следующим образом:
setattrs(obj,
a = 1,
b = 2,
#...
)
Вы также можете определить эту функцию в классе, но это будет менее общим (т.е. применимо только к экземплярам этого класса).
В другом ответе упоминается __dict__.update
, и его можно переписать, чтобы избавиться от кавычек: obj.__dict__.update(a=1, b=2)
, однако я бы не рекомендовал использовать этот метод: он не работает со свойствами, и может быть трудно заметить, если вы перейти от простых атрибутов к свойствам. В принципе, __dict__
является «скрытым» атрибутом, деталью реализации, которую вы не должны использовать, если вы действительно не хотите каким-либо образом изменить реализацию.