Python 什么';ndb.Model构造函数背后的魔力是什么?

Python 什么';ndb.Model构造函数背后的魔力是什么?,python,google-app-engine,google-cloud-datastore,Python,Google App Engine,Google Cloud Datastore,各位亲爱的 对于我来说,知道我可以像下面所示的那样了解我的ndb模型的初始属性是一种超越。我只需要在创建实体类的新实例时使用关键字参数 class MyModel(ndb.Model): foo = ndb.StringProperty() bar = ndb.StringProperty() baz = ndb.StringProperty() model_instance = MyModel(foo='foo', bar='bar', baz='baz') 这让我很困惑,因为

各位亲爱的

对于我来说,知道我可以像下面所示的那样了解我的ndb模型的初始属性是一种超越。我只需要在创建实体类的新实例时使用关键字参数

class MyModel(ndb.Model):
  foo = ndb.StringProperty()
  bar = ndb.StringProperty()
  baz = ndb.StringProperty()

model_instance = MyModel(foo='foo', bar='bar', baz='baz')
这让我很困惑,因为我还没有在我的类中创建任何构造函数。Python如何知道在没有构造函数的情况下如何设置属性

谢谢

阅读文档。
模型类具有构造函数,您可以传入关键字参数以映射到属性。因为您没有为类定义构造函数,所以它使用的是模型构造函数

,在使用元类时,还存在其他行为。我还要说,除非您真的知道自己在做什么,否则不要重写init方法。