Как справиться с ошибкой, возникающей при указании неправильного количества параметров при вызове функции в Python?
-
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
части, это должно показать вам, какое исключение оно выдает.
Не связан с StackOverflow