Python lambda 函数取决于参数 [duplicate]

Python lambda function depending on parameter [duplicate]

提问人:Sasha 提问时间:4/14/2023 更新时间:4/14/2023 访问量:26

问:

为方便起见,我想将几个函数定义为给定函数的“切片”,如下所示:

def f(x, k):
    print(x, k)


gs = []
for k in range(2):
    gs.append(lambda x: f(x, k))

但现在我明白了

gs[0]('a') == ('a', 1)
gs[1]('a') == ('a', 1)

我想得到:

gs[0]('a') == ('a', 0)
gs[1]('a') == ('a', 1)

我明白为什么我会得到前一种东西,并想知道是否有某种标准方法可以获得后者;从某种意义上说,我想在声明 lambda 函数时“冻结”不可变值。k

python-3.x 不可变性 lambda-calculus

评论


答: 暂无答案