Mat*_*ris 1 google-app-engine dynamic setattribute setattr listproperty
setattr
允许您在Python类中动态命名属性.我正在尝试使用App Engine模型做类似的事情:
class MyModel(db.Model):
def __init__(self, *args, **kwargs):
super(MyModel, self).__init__(*args, **kwargs)
# Doesn't fully work
setatr(self, 'prop1', db.ListProperty(db.Key))
setatr(self, 'prop2', db.StringListProperty())
# Works fully
# prop1 = db.ListProperty(db.Key))
# prop2 = db.StringListProperty())
Run Code Online (Sandbox Code Playgroud)
这段代码编译,但是当我model.prop1.append(key)
稍后调用时,我收到此错误:
AttributeError: 'ListProperty' object has no attribute 'append'
Run Code Online (Sandbox Code Playgroud)
我怀疑这是因为prop1
在模型中声明而不是self.prop1
,但我不完全理解语法的意义.
有没有人完成这个,或者有没有人对语法差异有任何见解?
归档时间: |
|
查看次数: |
488 次 |
最近记录: |