我想知道是否有办法确定(给定一个包含 lambda 的变量)它包含的 lambda 参数的数量。原因是,我希望根据参数的数量有条件地调用一个函数。
我在寻找什么
def magic_lambda_parameter_counting_function(lambda_function):
"""Returns the number of parameters in lambda_function
Args:
lambda_function - A lambda of unknown number of parameters
"""
所以我可以做类似的事情
def my_method(lambda_function):
# ...
# (say I have variables i and element)
parameter_count = magic_lambda_parameter_counting_function(lambda_function)
if parameter_count == 1:
lambda_function(i)
elif parameter_count == 2:
lambda_function(i, element)
最佳答案
Lambda 和其他函数一样。参数计数存储在 func.__code__.co_argcount
中。
>>> foo = lambda x, y=2: x+y
>>> foo.__code__.co_argcount
2
>>> foo = lambda x, y=2, z=3: x+y+z
>>> foo.__code__.co_argcount
3
关于python - 确定 lambda 中的参数数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10865325/