Wie der Fehler behandeln, die auf dem Geben falsche Anzahl von Parametern in einem Funktionsaufruf in Python auftritt?

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

  •  19-08-2019
  •  | 
  •  

Frage

Wenn ich falsche Anzahl von Parametern in einer Funktion geben, ich Fehler erhalten. Wie kann ich damit umgehen?

Ich habe

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

    except TypeError:
        print 'Wrong no of arg'

Es funktioniert nicht.

Hilfe bitte.

War es hilfreich?

Lösung

Der Anrufer löst diese Ausnahme, nicht der Empfänger.

Wenn Sie die Empfangsfunktion möchten ausdrücklich Argumentzähler überprüfen, müssen Sie varargs verwenden:

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

Andere Tipps

Sie müssen es zu handhaben, wo Sie die Funktion aufrufen.

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

Wenn Sie eine Funktion mit der falschen Anzahl von Parametern aufrufen, dann gibt es zwei Möglichkeiten:

  • Entweder Sie entwerfen Sie Ihre Funktion eine beliebige Anzahl von Argumenten zu handhaben. Dann sollten Sie wissen, was mit den zusätzlichen Argumenten zu tun. Die Antwort von Alec Thomas zeigt Ihnen, wie Sie diesen Fall behandeln.
  • Oder Ihr Design ist grundlegend falsch und Sie sind in großen Schwierigkeiten. nicht den Fehler fangen in diesem Fall nicht helfen.

Wenn Sie die try...catch Teile entfernen sollte es Ihnen zeigen, welche Art von Ausnahme es wirft.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top