首页 > 解决方案 > 为什么要将一个类作为 lambda 传递?

问题描述

我从在线示例和教程构建了我的第一个 GraphQL API,但想知道为什么某些事情是用 Python 完成的。

我不明白的课程片段:

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

区域类:

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

为什么他们将Region类作为 lambda 函数传递?对我来说lambda: Region是一样的f():return Region

标签: pythonlambdasqlalchemygraphql

解决方案


对我来说lambda: Region是一样的f():return Region

对于初学者来说,f():return Region不是有效的语法。当然,这可以修复:

def f():
  return Region

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

这将起作用并且大致相当于region = graphene.Field(lambda: Region, ...). 后者更短,可以说更清晰。


推荐阅读