Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich unerwartetes Verhalten mit veränderbaren Standardparametern in Python-Funktionen vermeiden?

Wie kann ich unerwartetes Verhalten mit veränderbaren Standardparametern in Python-Funktionen vermeiden?

Barbara Streisand
Barbara StreisandOriginal
2024-12-08 05:36:10247Durchsuche

How Can I Avoid Unexpected Behavior with Mutable Default Parameters in Python Functions?

Früh gebundene Standardparameter in Python: Häufige Fallstricke vermeiden

Bei der Arbeit mit Standardparametern in Python ist es wichtig, sich des Potenzials bewusst zu sein Probleme, die durch die frühe Bindung verursacht werden. Früh gebundene Standardparameter, wie sie beispielsweise für veränderliche Datenstrukturen (z. B. Listen) initialisiert werden, können sich unerwartet verhalten, wenn die Funktion mehrmals aufgerufen wird.

Betrachten Sie die folgende Beispielfunktion:

def my_func(working_list=[]):
    working_list.append("a")
    print(working_list)

Während der Aufruf dieser Funktion zum ersten Mal wie beabsichtigt eine leere Liste initialisiert, wird bei nachfolgenden Aufrufen dieselbe Liste aktualisiert. Dies kann zu unbeabsichtigtem Verhalten führen, da die Liste mit jedem Aufruf wächst.

Um dieses Problem zu vermeiden, wird empfohlen, den Standardwert „Keine“ für veränderbare Standardparameter bereitzustellen und im Funktionskörper explizit darauf zu prüfen. So können Sie die Beispielfunktion ändern:

def my_func(working_list=None):
    if working_list is None:
        working_list = []

    working_list.append("a")
    print(working_list)

Indem Sie den Standardwert auf „Keine“ setzen und ihn explizit testen, erstellt jeder Aufruf der Funktion eine neue leere Liste und stellt so sicher, dass die Funktion wie erwartet funktioniert .

Zusätzliche Überlegungen

Gemäß den PEP 8-Richtlinien ist die Verwendung oder Nicht-Vergleiche mit Keine wird gegenüber == oder != bevorzugt. Dies sorgt für Klarheit und verringert das Risiko potenzieller Fehler.

Denken Sie daran, diese Richtlinien zu beachten, wenn Sie mit Standardparametern arbeiten, um unvorhergesehene Probleme in Ihrem Code zu vermeiden.

Das obige ist der detaillierte Inhalt vonWie kann ich unerwartetes Verhalten mit veränderbaren Standardparametern in Python-Funktionen vermeiden?. 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