Heim >Backend-Entwicklung >Python-Tutorial >Wie greife ich dynamisch über einen String in Python auf Klasseneigenschaften zu?

Wie greife ich dynamisch über einen String in Python auf Klasseneigenschaften zu?

Barbara Streisand
Barbara StreisandOriginal
2024-10-23 08:39:01772Durchsuche

How to Access Class Property Dynamically from a String in Python?

Zugriff auf Klasseneigenschaften über einen String in Python

Bei der objektorientierten Programmierung kann es erforderlich sein, dynamisch auf Klasseneigenschaften basierend auf einem String zuzugreifen Eingang. Betrachten Sie die folgende Beispielklasse:

<code class="python">class User:
    def __init__(self):
        self.data = []
        self.other_data = []

    def doSomething(self, source):
        if source == 'other_data':
            # How to access self.other_data here?</code>

Dieses Beispiel zielt darauf ab, auf das Klassenmitglied mit dem in der Quellzeichenfolge angegebenen Namen zuzugreifen. So kann dies erreicht werden:

Verwendung von getattr():

Die Funktion getattr() ermöglicht den dynamischen Zugriff auf Attribute eines Objekts. Es benötigt zwei Argumente: das Objekt und eine Zeichenfolge, die den Attributnamen darstellt. In diesem Fall ist Quelle der Attributname:

<code class="python">x = getattr(self, source)</code>

Diese Zeile ruft den Wert des Attributs mit dem in Quelle gespeicherten Namen ab. Im obigen Beispiel würde x self.other_data zugewiesen.

Hinweis: getattr() kann sowohl mit Datenattributen als auch mit Methoden arbeiten.

Das obige ist der detaillierte Inhalt vonWie greife ich dynamisch über einen String in Python auf Klasseneigenschaften zu?. 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