Проверьте количество параметров, переданных в функции Python

Я новичок в Python и хочу знать, есть ли простой способ получить количество переданных параметров в функции Python.

a(1, 2, 3) ==>3
a(1, 2) ==>2

3 ответов


вы можете сделать это, используя locals ()

важно отметить, что это должно быть сделано, как, в конечном счете, ваш первый шаг в методе. Если вы введете новую переменную в свой метод, вы измените свои результаты. Поэтому убедитесь, что вы следуете этому пути:

def a(a, b, c):
    # make this your first statement
    print(len(locals()))

Если вы сделали это:

def a(a, b, c):
    z = 5
    print(len(locals()))

вы в конечном итоге получите 4, что не будет правильным для ваших ожидаемых результатов.

документация местные жители()


def a(*args, **kwargs):
  print(len(args) + len(kwargs))

вы также можете изменить вход для своей функции на список, чтобы иметь функцию:

a(your_list)

затем узнать, сколько аргументов было передано функции, вы могли бы просто сделать:

print len(your_list)

однако это означает, что вы меняете тип ввода для своей функции, от многих входных переменных до только одного, списка (который может иметь переменное количество элементов).