Heim  >  Artikel  >  Backend-Entwicklung  >  Wie greife ich mithilfe von String in Python dynamisch auf Klasseneigenschaften zu?

Wie greife ich mithilfe von String in Python dynamisch auf Klasseneigenschaften zu?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-23 08:40:29117Durchsuche

How to Access Class Property Dynamically Using String in Python?

Zugriff auf Klasseneigenschaften über einen String in Python

Bei der Arbeit mit Python kann es vorkommen, dass Sie dynamisch auf eine Klasseneigenschaft basierend auf einem String zugreifen müssen. Ein solcher Anwendungsfall ist der Zugriff auf verschiedene Klassenmitglieder basierend auf einem vom Benutzer bereitgestellten Zeichenfolgenwert.

In solchen Szenarien können Sie die Funktion getattr verwenden. Betrachten Sie die folgende Klasse als Beispiel:

<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</code>

Innerhalb der doSomething-Methode können Sie mit getattr dynamisch auf die Klasseneigenschaft zugreifen:

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

In diesem Fall wird x zugewiesen Wert der Klasseneigenschaft other_data, wenn Quelle gleich „other_data“ ist. Dies liegt daran, dass getattr ein Objekt und eine Zeichenfolge akzeptiert, die den Eigenschaftsnamen darstellt, und den Wert der Eigenschaft zurückgibt.

Die Verwendung von getattr bietet eine bequeme und dynamische Möglichkeit, auf Klasseneigenschaften basierend auf einer Zeichenfolge zuzugreifen. Dadurch können Sie die Verwendung fest codierter Eigenschaftsnamen vermeiden, wodurch Ihr Code flexibler und wiederverwendbar wird.

Das obige ist der detaillierte Inhalt vonWie greife ich mithilfe von String in Python dynamisch 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