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