Зачем тебе проходить занятия по лямбде? - PullRequest
0 голосов
/ 06 декабря 2018

Я создал свой первый API-интерфейс GraphQL из онлайн-примеров и учебных пособий, но хотел бы знать, почему в Python выполняются определенные действия.

Фрагмент класса, который я не понимаю:

class UpdateRegion(graphene.Mutation):
    """Update a region."""
    region = graphene.Field(lambda: Region, description="Region updated by this mutation.")
...

Класс Region:

class Region(SQLAlchemyObjectType):
   class Meta:
       model = RegionModel
       interfaces = (relay.Node, )

Почему они передают класс Region как лямбда-функцию?Для меня lambda: Region такой же, как f():return Region

1 Ответ

0 голосов
/ 06 декабря 2018

Для меня lambda: Region совпадает с f():return Region

Для начала, f():return Region не является допустимым синтаксисом.Это, конечно, можно исправить:

def f():
  return Region

region = graphene.Field(f, ...)

Это будет работать и примерно эквивалентно region = graphene.Field(lambda: Region, ...).Последний короче и, возможно, яснее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...