为什么db_Key.from_path在id_or_name和kind作为关键字参数传递时引发错误,而不是作为位置参数传递?

时间:2012-01-21 13:19:07

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

>> db.Key.from_path(kind='Entity', id_or_name='name')
# Error 'Excess keyword arguments ' + repr(kwds))

>> db.Key.from_path('Entity', 'name')
# Works okay

google.appengine.ext.db.Key.from_path()是出于特定原因设计的吗?

1 个答案:

答案 0 :(得分:2)

因为位置参数不能作为关键字(默认)参数传递 这不是gae的问题,而是python函数参数的工作方式。

来自appeng docs

Key.from_path(kind, id_or_name, parent=none, namespace=None, **kwds)

其中:

**kwds
Keyword arguments. The method supports one keyword argument, parent,
which specifies a parent entity to prepend to the given path.
Its value is the parent's Key.

所以“kind”,“id_or_name”不是关键字,而是指示位置参数的名称。