Zastanawiam się, czy istnieje sposób określić (biorąc pod uwagę zmienną zawierającą lambda) liczbę parametrów, jakie zawiera lambda. Powodem jest, że chcę wywołać funkcję warunkowo zależną od liczby parametrów.Określanie liczby parametrów w lambda
Co szukam
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
"""
Więc mogę zrobić coś takiego
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)
wygląda inspect.getargspec jest przestarzała, jest zalecane, aby użyć inspect.signature – JeffHeaton