Определение количества параметров в лямбде

Мне интересно, есть ли способ определить (учитывая переменную, содержащую лямбду) количество параметров, которые содержит лямбда. Причина в том, что я хочу вызвать функцию, условно зависящую от количества параметров.

То, что я ищу

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)
40
задан Anthony Sottile 2 June 2012 в 19:33
поделиться