我在GAE中创建了一堆Foo对象。在
我希望每个Foo都有一个名为fooify()的函数。 调用fooify(object)应该返回object,但以某种方式进行了转换。在
例如,fooify([2,3])可能返回:
我希望能够定义fooify在创建我的对象时所做的事情,最好是使用以下内容:
foo1=Foo()
foo1.fooify=lambda x: [n^2 for n in x]
foo1.put()
Foo类看起来像:
^{pr2}$我知道这不是数据存储的目的,但我仍然想这样做。 目前,我能看到的唯一选择是如下所示:
^{3}$它使用eval()创建fooify函数的主要部分。我不想使用eval(),因为它看起来有点像黑客,而且这也意味着我必须将所有的fooify\u str函数都写成字符串(恼人-没有语法高亮显示等)
有没有别的办法让我错过?在
如果不同的
fooify
函数在类层次结构中有一定的组织,那么使用polymodel可能适合您的需要。在您可以定义模型:
ndb将把这些存储在}。在
Foo
类型下,因此对Foo
的任何查询都将返回所有结果(即Foo.query().filter(...)
)。但是,它跟踪类的层次结构,因此当您加载实体时,它知道它是MyFirstFoo
与{相关问题 更多 >
编程相关推荐