我尝试为某些calss的属性赋值,如下所示:
for name in dir(modelType):
if request.get(name):
getattr(model, name) = request.get(name)
Run Code Online (Sandbox Code Playgroud)
但得到的结论是:"无法分配给函数调用"
如何在编译时不知道它们的情况下更改属性?
pay*_*yne 19
您可以使用setattr()为属性分配值.
请参阅:http: //docs.python.org/library/functions.html#setattr
setattr(model, name, request.get(name))
Run Code Online (Sandbox Code Playgroud)
但我建议将请求数据保存在字典,专用类中或直接访问它 - 除非你正在进行特定的元编程/内省,否则setattr通常是错误的工具.