Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann der Fehler „Ungültiger Aufrufparameter“ von Python behoben werden?

Wie kann der Fehler „Ungültiger Aufrufparameter“ von Python behoben werden?

WBOY
WBOYOriginal
2023-06-24 22:44:103339Durchsuche

Python ist eine High-Level-Programmiersprache, die in den Bereichen wissenschaftliches Rechnen, Datenanalyse, Automatisierung, Webentwicklung und anderen Bereichen weit verbreitet ist. Bei der Entwicklung von Python-Anwendungen ist der Fehler illegaler Aufrufparameter ein häufiger Programmierfehler, der dazu führen kann, dass das Programm abstürzt oder die Ausführungsergebnisse nicht den Erwartungen entsprechen. In diesem Artikel werden die Ursachen illegaler Aufrufparameter in Python und die Behebung dieses Fehlers vorgestellt.

1. So rufen Sie Parameter in Python auf

In Python gibt es zwei Möglichkeiten, Funktionen und Methoden aufzurufen:

  1. Positionsparameter-Aufrufmethode

Positionsparameter beziehen sich auf Parameter, die in der Reihenfolge übergeben werden, in der sie sind definiert. Die folgende Funktionsdefinition hat beispielsweise zwei Positionsparameter a und b:

def add(a, b):
    return a + b

Beim Aufruf der Funktion können Sie die Parameter in der Reihenfolge der Positionsparameter übergeben:

result = add(1, 2)

Hier werden 1 und 2 den Parametern a und b zugewiesen bzw. und die Funktion gibt 3 zurück.

  1. Methode zum Aufrufen von Schlüsselwortparametern

Schlüsselwortparameter sind Parameter, die entsprechend dem Parameternamen übergeben werden. Die folgende Funktionsdefinition hat beispielsweise zwei Schlüsselwortparameter x und y:

def sub(x, y):
    return x - y

Beim Aufruf der Funktion können Sie Parameter übergeben, indem Sie den Parameternamen angeben:

result = sub(x=3, y=1)

Hier werden 3 und 1 den Parametern x bzw. y zugewiesen, und Die Funktion gibt 2 zurück.

2. Ursachen für illegale Python-Aufrufparameterfehler

Unzulässige Python-Aufrufparameterfehler haben normalerweise die folgenden Gründe:

  1. Die Anzahl der Parameter stimmt nicht überein

Beim Aufruf einer Funktion oder Methode stimmt die Anzahl der übergebenen Parameter überein stimmt nicht mit der Definition überein. Wenn die Anzahl der Parameter nicht übereinstimmt, tritt ein Fehler wegen unzulässiger Parameter auf. Beispielsweise verfügt die folgende Funktionsdefinition über zwei Positionsparameter a und b, beim Aufruf wird jedoch nur ein Parameter übergeben:

def add(a, b):
    return a + b

result = add(1)

Hier wird nur ein Parameter 1 übergeben, aber die Funktionsdefinition erfordert zwei Positionsparameter, sodass der Parameter unzulässig ist . Fehler.

  1. Mischen von Positionsparametern und Schlüsselwortparametern

Bei der gemischten Verwendung von Positionsparametern und Schlüsselwortparametern kann es zu einer Nichtübereinstimmung der Parameter kommen. Die folgende Funktionsdefinition hat beispielsweise zwei Positionsparameter a und b und einen Schlüsselwortparameter c:

def func(a, b, c=0):
    return a + b + c

Beim Aufruf der Funktion können Sie einen Wert an den Schlüsselwortparameter c übergeben, indem Sie den Parameternamen angeben:

result = func(1, 2, c=3)

Das ist auch möglich Verwenden Sie Positionsparameter. Übergeben Sie Parameterwerte:

result = func(1, 2, 3)

Wenn die Positionsparameter jedoch mit dem Schlüsselwortparameter c übergeben werden, tritt ein ungültiger Parameterfehler auf:

result = func(1, 2, c=4, 5)

Hier werden sowohl Schlüsselwortparameter als auch Positionsparameter verwendet, was zu einer Parameterinkongruenz führt.

  1. Übergabe von Parametern eines unzulässigen Typs

Unzulässige Parameterfehler können auch auftreten, wenn der übergebene Parametertyp nicht mit dem durch die Funktion oder Methode definierten Parametertyp übereinstimmt. Beispielsweise erfordert die folgende Funktionsdefinition einen ganzzahligen Parameter:

def func(num):
    return num * 2

Aber wenn ein String-Parameter übergeben wird, tritt ein ungültiger Parameterfehler auf:

result = func('hello')

Was hier übergeben wird, ist ein String-Typ-Parameter, aber die Funktionsdefinition erfordert einen Parameter von Geben Sie Ganzzahl ein.

3. So beheben Sie den Fehler illegaler Python-Parameteraufrufe

Wenn ein Fehler aufgrund illegaler Python-Parameter auftritt, umfassen gängige Lösungen Folgendes:

  1. Überprüfen Sie die Anzahl und Art der Parameter

Zuerst müssen Sie beim Aufruf überprüfen eine Funktion oder Methode Ob die Anzahl und der Typ der übergebenen Parameter mit der Anzahl und dem Typ der durch die Funktion oder Methode definierten Parameter übereinstimmen. Der folgende Code überprüft beispielsweise, ob die Anzahl der beim Aufruf der Funktion übergebenen Parameter korrekt ist:

def func(a, b, c):
    pass

args = (1, 2, 3)
if len(args) != 3:
    print('参数数量不正确')
else:
    func(*args)

Hier wird das Tupel args zum Speichern der übergebenen Parameter verwendet und prüft dann, ob die Länge der args gleich 3 ist. Wenn nicht , wird angezeigt, dass die Anzahl der Parameter falsch ist, andernfalls wird func als Funktion bezeichnet.

  1. Verwenden Sie Schlüsselwortparameter

Durch die Verwendung von Schlüsselwortparametern können Sie das Problem einer falschen Parameterreihenfolge vermeiden und die Lesbarkeit des Codes verbessern. Der folgende Code ruft beispielsweise eine Funktion mithilfe von Schlüsselwortargumenten auf:

def func(a, b, c):
    pass

params = {'a': 1, 'b': 2, 'c': 3}
func(**params)

Hier wird das Wörterbuch params verwendet, um die beim Aufruf der Funktion übergebenen Parameter zu speichern, und dann wird **params verwendet, um die Parameter in params zu entpacken und zu übergeben zur Funktion.

  1. Standardwerte festlegen

Das Festlegen von Standardwerten für Parameter einer Funktion oder Methode kann diese beim Aufruf flexibler machen. Die folgende Funktionsdefinition legt beispielsweise einen Standardparameterwert fest:

def func(a, b=0, c=0):
    pass

Beim Aufruf der Funktion können Sie nur einen Parameter a übergeben, oder Sie können sowohl b als auch c gleichzeitig übergeben:

func(1)              # 只传递a参数,b和c使用默认值0
func(1, 2, 3)        # 传递a、b和c参数
func(a=1, c=3)       # 使用关键字参数传递a和c参数,b使用默认值0

Die Standardwerte ​​von b und c sind hier beide 0. Wenn keine Parameter übergeben werden, werden Standardwerte verwendet.

  1. Ausnahmen abfangen

Wenn ein ungültiger Python-Parameterfehler auftritt, stürzt das Programm möglicherweise ab oder gibt eine Fehlermeldung aus. Um diese Situation zu vermeiden, können Ausnahmen im Programm abgefangen und behandelt werden. Im folgenden Code wird beispielsweise eine Try-Exception-Anweisung verwendet, um Ausnahmen mit unzulässigen Parametern abzufangen:

def func(a, b):
    pass

try:
    result = func(1)
except TypeError:
    print('参数不合法')

Beim Aufruf der Funktion func wird nur ein Parameter übergeben, aber die Funktionsdefinition erfordert zwei Parameter, sodass ein Fehler bei unzulässigen Parametern auftritt . Verwenden Sie die try-exclusive-Anweisung, um diese Ausnahme abzufangen und zu behandeln und Eingabeaufforderungsinformationen auszugeben.

Zusammenfassend lässt sich sagen, dass der Fehler „Ungültige Aufrufparameter“ von Python die Ausführungsergebnisse und die Leistung des Programms beeinträchtigen kann. Dieser Fehler kann jedoch durch die Verwendung geeigneter Methoden vermieden werden. Bei der täglichen Programmierung müssen Sie die Anzahl, den Typ und den Standardwert der Parameter einer Funktion oder Methode sorgfältig prüfen und die Verwendung gemischter Parameterübergabemethoden vermeiden. Gleichzeitig müssen bei unvermeidlichen Ausnahmen Try-Except-Anweisungen verwendet werden, um Fehler abzufangen und Ausnahmen zu behandeln.

Das obige ist der detaillierte Inhalt vonWie kann der Fehler „Ungültiger Aufrufparameter“ von Python behoben werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn