首页 > 解决方案 > python绕过对象链接中的Lambda函数

问题描述

我了解它是如何工作的,但是在这种情况下我怎么能做到 python 打印 true 和 false 呢?)

def f(func, value):
        global a
        a = 2
        print(func(value))

a = 3
f(lambda x: x == a, 3)
f(lambda x: x == a, 2)

标签: pythonlambda

解决方案


如果您的目标是让代码检查a您最初声明的值(即 3)以便打印TrueFalse而不是相反,只是不要a在你的函数内设置为 2 :

def f(func, value):
        print(func(value))

a = 3
f(lambda x: x == a, 3)
f(lambda x: x == a, 2)

通常不推荐使用global,因为它很容易让值以意想不到的方式发生变化而使自己感到困惑。


推荐阅读