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
Freigeben: 2024-10-23 08:39:01
Original
774 Leute haben es durchsucht

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

Quelle:php
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage