назначить атрибут с помощью getattr - PullRequest
12 голосов
/ 31 января 2011

Я пытаюсь присвоить значение атрибутам некоторых вызовов, например:

for name in dir(modelType):
      if request.get(name):
            getattr(model, name) = request.get(name) 

, но получаю исключение: "невозможно назначить вызов функции"

как я могу изменитьатрибуты, не зная их во время выполнения?

Ответы [ 2 ]

18 голосов
/ 31 января 2011

Вы используете setattr() для присвоения значений атрибутам.

См .: http://docs.python.org/library/functions.html#setattr

7 голосов
/ 31 января 2011
setattr(model, name, request.get(name))

но я бы порекомендовал сохранять данные запроса в словаре, выделенном классе или обращаться к ним напрямую - если вы не занимаетесь специальным метапрограммированием / самоанализом, setattr часто не подходит для работы.

...