Heim  >  Artikel  >  Backend-Entwicklung  >  Wie funktionieren Variablenbereiche in Python-Klassen?

Wie funktionieren Variablenbereiche in Python-Klassen?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-19 08:13:02395Durchsuche

How do variable scopes work within Python classes?

Variablenbereiche in Python-Klassen

Bereichsvariation

In Python-Klassen variiert der Variablenbereich basierend darauf, wo sie deklariert sind:

  • Variablen auf Klassenebene (außerhalb von Funktionen):Zugriff auf alle Klassenfunktionen (öffentliche Variablen).
  • Funktionslokale Variablen (innerhalb von Klassenfunktionen):Beschränkt auf diese bestimmte Funktion (innerhalb ihres Geltungsbereichs).

selbst vs. globale Variablen

Die Deklaration einer Variablen mit self.(Variablenname) innerhalb einer Klassenfunktion macht sie auch für alle Klassenfunktionen zugänglich. Im Gegensatz zu globalen Variablen sind diese Variablen jedoch spezifisch für die aktuelle Instanz und überschreiben keine Variablen auf Klassenebene.

Zusätzliche Nuancen

  • Einzeln vs. Präfix mit doppeltem Unterstrich: Variablen, die mit einem einzelnen Unterstrich beginnen (z. B. _variable), gelten als geschützt und sollten nur innerhalb der Klasse aufgerufen werden. Variablen, die mit doppelten Unterstrichen beginnen (z. B. __variable), sind entstellt und praktisch privat.
  • Lokale Variablen: In Klassenfunktionen deklarierte Variablen sind für diese Funktionen lokal und haben keinen Einfluss auf den Klassenbereich.

Beispiel

Betrachten Sie die folgende Klasse:

class Test:
    a = None
    b = None

    def __init__(self, a):
        print(self.a)
        self.a = a
        self._x = 123
        self.__y = 123
        b = 'meow'
  • a und b sind Variablen auf Klassenebene, auf die von jedem aus zugegriffen werden kann Instanz.
  • a wird durch das instanzspezifische self.a in __init__ überschrieben.
  • _x ist geschützt und nicht Teil der öffentlichen API.
  • __y ist verstümmelt und privat zur Klasse.
  • b ist eine lokale Variable, auf die nur innerhalb von __init__ zugegriffen werden kann.

Das obige ist der detaillierte Inhalt vonWie funktionieren Variablenbereiche in Python-Klassen?. 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