使用getattr分配属性

时间:2011-01-31 02:39:12

标签: python getattr

我尝试为某些calss的属性赋值 如下:

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

但得到的结论是: “无法分配给函数调用”

如何在不知道它们的情况下更改属性?

2 个答案:

答案 0 :(得分:18)

您使用setattr()为属性分配值。

请参阅:http://docs.python.org/library/functions.html#setattr

答案 1 :(得分:7)

setattr(model, name, request.get(name))

但我建议将请求数据保存在字典,专用类中或直接访问它 - 除非你正在进行特定的元编程/内省,否则setattr通常是错误的工具。