Como lidar com o erro que ocorre em dar o número errado de parâmetros em uma chamada de função em Python?

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

  •  19-08-2019
  •  | 
  •  

Pergunta

Quando eu dou número errado de parâmetros em uma função, eu recebo erros. Como posso lidar com isso?

Eu dei

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

    except TypeError:
        print 'Wrong no of arg'

Ele não está funcionando.

Ajuda por favor.

Foi útil?

Solução

O chamador desencadeia essa exceção, não o receptor.

Se você quiser que a função de recepção para explicitamente verificar argumento contar que você vai precisar usar varargs:

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

Outras dicas

Você precisa lidar com isso, onde você chamar a função.

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

Se você chamar uma função com o número errado de parâmetros, em seguida, há duas possibilidades:

  • Ou você projetar sua função para lidar com um número arbitrário de argumentos. Então você deve saber o que fazer com os argumentos extras. A resposta de shows Alec Thomas-lhe como lidar com este caso.
  • Ou seu projeto é fundamentalmente falho e você está em apuros. Pegando o erro não ajuda neste caso.

Se você remover as partes try...catch deve mostrar-lhe que tipo de exceção que está jogando.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top