python - 请解释一下 Python 中的 Lambda 表达式用法

标签 python lambda manageiq

我在 Lambda 表达式的概念上遇到了一些困难,我这里有这段代码:

nav.add_branch(
'containers_pods',
{
    'containers_pod':
    [
        lambda ctx: list_tbl.select_row_by_cells(
            {'Name': ctx['pod'].name, 'Provider': ctx['provider'].name}),
        {
            'containers_pod_edit_tags':
            lambda _: pol_btn('Edit Tags'),
        }
    ],
    'containers_pod_detail':
    [
        lambda ctx: list_tbl.click_row_by_cells(
            {'Name': ctx['pod'].name, 'Provider': ctx['provider'].name}),
        {
            'containers_pod_timelines_detail':
            lambda _: mon_btn('Timelines'),
            'containers_pod_edit_tags_detail':
            lambda _: pol_btn('Edit Tags'),
        }
    ]
}

)

有人可以解释一下 Lambda 表达式的用法吗? 此代码的更多内容如下:

https://github.com/ManageIQ/integration_tests/blob/093f4cf42127e2f98cc01d91fc2d4db487543ca1/cfme/containers/pod.py#L11-L35

谢谢!

最佳答案

Lambda 是匿名函数,你可以在心里替换这个 block

[
    lambda ctx: list_tbl.select_row_by_cells(
        {'Name': ctx['pod'].name, 'Provider': ctx['provider'].name}),
    {
        'containers_pod_edit_tags':
        lambda _: pol_btn('Edit Tags'),
    }
]

def function_1(ctx):
    return list_tbl.select_row_by_cells(
        {'Name': ctx['pod'].name, 'Provider': ctx['provider'].name}
    )

def function_2(_):
    return pol_btn('Edit Tags')


[
    function_1,
    {
        'containers_pod_edit_tags':
        function_2,
    }
]

lambda _: 中的下划线 _convention in Python对于您不会使用的变量,“一次性”,因为您可以看到 lambda/函数没有使用参数 _

关于python - 请解释一下 Python 中的 Lambda 表达式用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38218175/

相关文章:

c# - 为 lambda 声明提供的参数数量不正确

ssl - Docker 容器内的 ManageIQ Web 应用程序无法连接到容器外的 Hawkular

web-applications - 与 OpenStack Horizo​​n 相比,ManageIQ 有哪些优势?我目前正在 Horizo​​n 工作,但想知道 ManageIQ 是否更好

python - 使用 scikit-learn 的 SGDRegressor 算法进行梯度下降

python - 从元组中获取相同的元素并返回两个索引列表

javascript - QWebKit - 运行页面的 javascript 函数?

java - 为什么我在 Java 8 Lambda 中使用 "Collectors.toList()"而不是 "Collectors::toList"?

python - 计算列表列中两个元素的出现次数

python - 组合可能的不同数据格式列表