Heim >Backend-Entwicklung >Python-Tutorial >Wie greife ich dynamisch über die Zeichenfolgeneingabe in Python auf Klasseneigenschaften zu?
Python: Zugriff auf Klasseneigenschaften über Strings
In Python kann es vorkommen, dass Sie auf Klasseneigenschaften über Strings zugreifen müssen. Beispielsweise könnten Sie eine Klasse wie diese haben:
<code class="python">class User: def __init__(self): self.data = [] self.other_data = [] def doSomething(self, source): # How to access self.other_data if source = 'other_data'?</code>
Sie möchten einen Zeichenfolgenwert für den Quellparameter in doSomething übergeben und auf das Klassenmitglied mit demselben Namen zugreifen.
Lösung:
Die ideale Lösung für dieses Problem ist die Verwendung der getattr-Funktion:
<code class="python">x = getattr(self, source)</code>
getattr benötigt zwei Argumente: das Objekt, auf dessen Eigenschaft Sie zugreifen möchten, und das Name der Eigenschaft als String. In Ihrem Fall würden Sie self als erstes Argument und source als zweites verwenden.
Dieser Ansatz funktioniert nahtlos, unabhängig davon, auf welches Attribut von self durch die Quellzeichenfolge verwiesen wird, einschließlich other_data in Ihrem Beispiel.
Das obige ist der detaillierte Inhalt vonWie greife ich dynamisch über die Zeichenfolgeneingabe in Python auf Klasseneigenschaften zu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!