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

StackOverflow https://stackoverflow.com/questions/456673

  •  19-08-2019
  •  | 
  •  

Вопрос

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

Я дал

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

    except TypeError:
        print 'Wrong no of arg'

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

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

Это было полезно?

Решение

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

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

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

Другие советы

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top