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__
- это «скрытый» атрибут, деталь реализации, который вы не должны использовать, если вы действительно не хотите каким-то образом изменить реализацию.
Да, это работает, но не более изящные и ни более читаемый, чем версия три строки выше. Я хотел бы узнать, есть ли у Python синтаксический сахар, который может упростить настройку атрибута. –