Изменение цвета текста и состояния кнопки

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

20
задан Rising 6 August 2014 в 21:19
поделиться