Come gestire l'errore che si verifica nel dare un numero errato di parametri in una chiamata di funzione in Python?

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

  •  19-08-2019
  •  | 
  •  

Domanda

Quando do un numero errato di parametri in una funzione, ottengo errori. Come lo gestisco?

Ho dato

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

    except TypeError:
        print 'Wrong no of arg'

Non funziona.

Aiuto per favore.

È stato utile?

Soluzione

Il chiamante attiva questa eccezione, non il destinatario.

Se si desidera che la funzione di ricezione controlli esplicitamente il conteggio degli argomenti, è necessario utilizzare varargs:

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

Altri suggerimenti

Devi gestirlo nel modo in cui chiami la funzione.

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

Se si chiama una funzione con un numero errato di parametri, ci sono due possibilità:

  • O si progetta la propria funzione per gestire un numero arbitrario di argomenti. Quindi dovresti sapere cosa fare con gli argomenti extra. La risposta di Alec Thomas ti mostra come gestire questo caso.
  • O il tuo design è fondamentalmente imperfetto e sei in grossi guai. La cattura dell'errore non aiuta in questo caso.

Se rimuovi le parti prova ... cattura dovrebbe mostrarti che tipo di eccezione sta generando.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top