使用类vs使用函数与ndb.model?谷歌应用引擎

时间:2014-11-17 14:57:25

标签: python-2.7 google-app-engine google-cloud-datastore

我看到一些使用函数而不是类来声明ndb模型的示例:

使用函数声明模型:

def Person(ndb.model):
    first_name = ndb.StringProperty()
    surname = ndb.StringProperty()
    languages_spoken = ndb.StringProperty(repeated=True, choices=languages)

用类声明模型:

class Person(ndb.model):
        first_name = ndb.StringProperty()
        surname = ndb.StringProperty()
        languages_spoken = ndb.StringProperty(repeated=True, choices=languages)

他们之间有什么区别?

1 个答案:

答案 0 :(得分:0)

无法发布带有功能的模型。应用引擎不允许这样做。 Ndb将模型创建为Python类,而不是函数,因此您找到的示例实际上是错误的。

这是为了补充Greg和dyoo,他们只是在评论中说出来。我希望它贴出来作为答案。同样有趣的是查看ndb examples from google,并且在任何情况下都不会将其声明为def。