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

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

я дал

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

    except TypeError:
        print 'Wrong no of arg'

Не работает.

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

Ответы [ 4 ]

4 голосов
/ 19 января 2009

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

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

def fun_name(*args):
  if len(args) != 2:
    raise TypeError('Two arguments required')
4 голосов
/ 19 января 2009

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

try:
  fun_name(...)
except TypeError:
  print "error!"
0 голосов
/ 19 января 2009

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...