Почему db.Key.from_path вызывает ошибку, когда id_or_name и kind передаются как аргументы ключевых слов, а не как позиционные аргументы? - PullRequest
0 голосов
/ 21 января 2012
>> 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 Ответ

2 голосов
/ 21 января 2012

Поскольку позиционные аргументы нельзя передавать в качестве аргументов с ключевыми словами (по умолчанию).
Это не проблема 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" - это не ключевые слова, а имена для обозначения позиционных аргументов.

...