向动态创建的对象添加值

时间:2014-02-05 12:56:13

标签: python

我创建了这样的对象:

object = eval(someClass+'()')

现在我有了所有文件的循环:

for f in eval(someClass+"._meta.fields"):

如何将数据添加到所有对象字段?

someClass是一个字符串。

1 个答案:

答案 0 :(得分:3)

当您有globals()getattr()setattr()时,请勿使用eval()

cls = globals()[someClass]
instance = cls()
for f in cls._meta.fields:
    previous_value = getattr(instance, f)
    setattr(instance, f, previous_value + 'some new value')

我避免使用object作为变量名;它会掩盖内置的object() type

相关问题