Python - 冗余 lambda 参数的表示法
Python - notation for redundant lambda parameters
我正在尝试构建一个函数
f(x, y, z)
其中 x 和 y 都对结果没有任何影响。尽管如此,它们必须传递给函数,因为传递是由库完成的。我愿意:
- 使用 lambda 表达式解决此问题,并且
- 确保任何阅读我的代码的人都会立即知道 x 和 y 是多余的。
据我所知,使用下划线字符表示多值returning 函数中的冗余return 值是常见的做法,例如
a, _, c, d, _, _ = return_six_things(),
然而,尝试
f = lambda _, _, z: some_operation(z)
崩溃并警告作者使用 'duplicate arguments'(两个下划线字符)。
还有其他选择吗?
P.S。为了避免 XY 问题,我想使用 lambdas 的原因是为了节省一些源代码字符。无论如何我都愿意使用它们,但声明“这些参数将不会被使用”对我来说更重要。
我会为第二个未使用的参数使用双下划线 (__
):
f = lambda _, __, z: some_operation(z)
选项:
# pass in z as a keyward argument
# like this: f(x,y,z=1)
f = lambda *_,z: some_operation(z)
#Or:
# pass in any number of arguments and only use the last argument
f = lambda *z: some_operation(z[-1])
我正在尝试构建一个函数
f(x, y, z)
其中 x 和 y 都对结果没有任何影响。尽管如此,它们必须传递给函数,因为传递是由库完成的。我愿意:
- 使用 lambda 表达式解决此问题,并且
- 确保任何阅读我的代码的人都会立即知道 x 和 y 是多余的。
据我所知,使用下划线字符表示多值returning 函数中的冗余return 值是常见的做法,例如
a, _, c, d, _, _ = return_six_things(),
然而,尝试
f = lambda _, _, z: some_operation(z)
崩溃并警告作者使用 'duplicate arguments'(两个下划线字符)。
还有其他选择吗?
P.S。为了避免 XY 问题,我想使用 lambdas 的原因是为了节省一些源代码字符。无论如何我都愿意使用它们,但声明“这些参数将不会被使用”对我来说更重要。
我会为第二个未使用的参数使用双下划线 (__
):
f = lambda _, __, z: some_operation(z)
选项:
# pass in z as a keyward argument
# like this: f(x,y,z=1)
f = lambda *_,z: some_operation(z)
#Or:
# pass in any number of arguments and only use the last argument
f = lambda *z: some_operation(z[-1])