Как справиться с ошибкой, возникающей при задании неверного количества параметров при вызове функции в Python?

Когда я даю неправильное количество параметров в функции, я получаю ошибки. Как мне справиться с этим?

я дал

def fun_name(...):
    try:
        ...

    except TypeError:
        print 'Wrong no of arg'

Это не работает.

Помогите, пожалуйста.

4 ответа

Решение

Вызывающая сторона вызывает это исключение, а не получатель.

Если вы хотите, чтобы принимающая функция явно проверяла количество аргументов, вам нужно использовать varargs:

def fun_name(*args):
  if len(args) != 2:
    raise TypeError('Two arguments required')

Вы должны обрабатывать это там, где вы вызываете функцию.

try:
  fun_name(...)
except TypeError:
  print "error!"

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

  • Либо вы разрабатываете свою функцию для обработки произвольного числа аргументов. Тогда вы должны знать, что делать с дополнительными аргументами. Ответ Алек Томас показывает вам, как справиться с этим делом.
  • Или ваш дизайн в корне неверен, и у вас большие проблемы. Поймать ошибку не поможет в этом случае.

Если вы удалите try...catch части это должно показать вам, какое исключение это бросает.

Другие вопросы по тегам