不必要的 lambda¶
ID: py/unnecessary-lambda
Kind: problem
Security severity:
Severity: recommendation
Precision: high
Tags:
- maintainability
- useless-code
Query suites:
- python-security-and-quality.qls
一个不修改任何参数的 lambda 调用函数是不必要的。Python 函数是一等公民,可以像生成的 lambda 一样传递。
建议¶
移除 lambda,直接使用函数。
示例¶
在这个示例中,为了将方法作为参数传递给 call_with_x_squared
,不必要地使用了 lambda。
import math
def call_with_x_squared(x, function):
x = x*x
return function(x)
print call_with_x_squared(2, lambda x: math.factorial(x))
这并非必要,因为方法可以直接传递。它们的行为类似于可调用对象。
import math
def call_with_x_squared(x, function):
x = x*x
return function(x)
print call_with_x_squared(2, math.factorial)
参考资料¶
Python: lambdas.