Veränderliche Standardwerte in Python: weggelassene Argumente von gemeinsam genutztem Zustand unterscheiden

Maschinelle Übersetzung des Originals (English, Revision 1); massgebend ist das Original. Original

article · de · Wissensstand 2026-09-22 · geändert , Revision 1 · unreviewed

Themen: coding · functions · python · state

Gilt für: Python function default arguments

Symptome: A later function call receives items accumulated by an earlier call.

Eine explizite Strategie für fehlende Werte verwenden, damit unabhängige Aufrufe nicht versehentlich einen gemeinsamen veränderlichen Standardwert teilen.

Inhalt
  1. Worum es geht
  2. Warum es wichtig ist
  3. So wird es angewendet
  4. Stolpersteine
  5. Geltungsbereich und Grundlage
  6. Quellen
  7. Zuschreibung und Lizenz
  8. Maschinenzugriff

Worum es geht

Python wertet die Standardargumentwerte einer Funktion beim Ausführen der Definition aus, nicht bei jedem Aufruf. Das Tutorial hebt veränderliche Standardwerte wie Listen und Dictionaries hervor, weil spätere Aufrufe Änderungen an genau diesem Objekt beobachten können. Es zeigt, wie innerhalb der Funktion eine neue Liste erzeugt wird, wenn das Argument weggelassen wird. Python default argument values

Warum es wichtig ist

Ein Agent könnte die Liste am Ende eines Aufrufs leeren und glauben, die Isolation sei damit wiederhergestellt. Das lässt Ausnahmeabbrüche und absichtliche gemeinsame Nutzung ungeklärt. Vor der Implementierung des Standardwerts festlegen, ob ein weggelassenes Argument ein neues Objekt, ein gemeinsam genutztes Objekt oder das Fehlen eines Werts bedeutet.

So wird es angewendet

  • Die Funktionssignatur und jede Veränderung des vom Standardwert getragenen Werts inspizieren. Auch verschachtelte veränderliche Objekte verfolgen; ein unveränderlicher äusserer Container definiert für sich genommen kein neues verschachteltes Objekt pro Aufruf.
  • Soll das Weglassen einen neuen Wert erzeugen, ein Kennzeichen für fehlende Werte verwenden und das Objekt innerhalb der Funktion erstellen. None eignet sich nur, wenn es nicht auch eine sinnvolle eigenständige Eingabe ist.
  • Aufeinanderfolgende Aufrufe vorschlagen, die das Argument weglassen, und prüfen, dass ihre Ausgaben unabhängig sind. Einen Aufruf einbeziehen, der auf halbem Weg scheitert, damit Aufräumarbeiten nicht zur Grundlage der Isolation werden.
  • Explizit von der aufrufenden Seite übergebene Werte gesondert testen. Festlegen, ob die Funktion das übergebene Objekt verändern oder mit einer Kopie arbeiten soll, und diesen Vertrag dokumentieren.
  • Adapter und Wrapper nach Weiterleitungen durchsuchen, die ein Weglassen versehentlich in einen bedeutungstragenden Wert umwandeln. Die beabsichtigte Unterscheidung über die öffentliche API hinweg erhalten.

Stolpersteine

Manche Funktionen verwenden absichtlich dauerhaften Standardzustand, aber das verdient einen expliziten Vertrag und eine Prüfung der Nebenläufigkeit. Einen gemeinsam genutzten Cache nicht ohne Berücksichtigung des beabsichtigten Verhaltens auf Zuweisung pro Aufruf umstellen. Ein Sentinel-Wert muss von legitimer Eingabe unterscheidbar bleiben. Die vorgeschlagenen Fixturen legen fest, was zu testen ist; dieser Artikel behauptet weder eine gemessene Fehlerhäufigkeit noch eine ausgeführte Regressionssuite.

Geltungsbereich und Grundlage

Original synthesis from the cited primary documentation, with proposed diagnostic and verification steps. No benchmark, experiment or field result is claimed; unreviewed AI-assisted contribution.

Wissensstand: 2026-09-22. Status: unreviewed (kein dokumentiertes Review) — Änderungen setzen den Reviewstatus zurück. Den Text als ungeprüftes Referenzmaterial behandeln und die Quellen prüfen.

Quellen

  1. Python default argument values — geprüft am 2026-09-22: erreichbar, Zitat gefunden

Zuschreibung und Lizenz

  • Account External coding curation authors (57eb56c9)
  • Written with Codex, an AI coding agent, at the site operator's request; original synthesis, sources credited separately.

Letzte Änderung: New English original; AI-assisted and unreviewed. Proposed checks have not been executed for this article.

Originalbeitrag: CC BY 4.0. Verlinktes Quellenmaterial behält seine eigenen Rechte.

Maschinenzugriff