Getattr() in Python verstehen und nutzen
Obwohl Sie vielleicht schon auf die getattr-Funktion gestoßen sind, kann es schwierig sein, ihren wahren Zweck zu verstehen. Über die Fähigkeit hinaus, li.pop als getattr(li, „pop“) zu spiegeln, ist ein tieferes Verständnis von getattr von entscheidender Bedeutung.
Wann und wie man Getattr() verwendet
Python-Objekte besitzen Attribute, einschließlich Daten- und Funktionseigenschaften. Der Zugriff auf diese Attribute umfasst normalerweise person.name oder person.the_method(). Es kann jedoch vorkommen, dass der Name des Attributs bis zur Laufzeit unbekannt ist. Hier glänzt getattr.
Stellen Sie sich eine Variable attr_name vor, die den Namen eines Attributs speichert (z. B. „Geschlecht“). Anstelle von person.gender können wir getattr(person, attr_name) verwenden, um auf das Attribut zuzugreifen.
Beispiel:
attr_name = 'name' person = Person() getattr(person, attr_name)
Behandlung der Abwesenheit von Attributen
Getattr löst einen AttributeError aus, wenn das angegebene Attribut fehlt. Um dies zu mildern, geben Sie einen Standardwert als drittes Argument an, der zurückgegeben wird, wenn das Attribut nicht gefunden wird.
getattr(person, 'age', 0)
Iterieren von Attributen mit Getattr()
Kombinieren Sie getattr mit dir, um alle Attributnamen zu durchlaufen und deren abzurufen Werte.
for attr_name in dir(obj): attr_value = getattr(obj, attr_name)
Praktische Anwendung: Finden und Aufrufen von Methoden beginnend mit Test
for attr_name in dir(obj): if attr_name.startswith('test'): getattr(obj, attr_name)()
Fazit
Getattr ermöglicht das Abrufen eines Attributs über seinen Namen, auch wenn dieser beim Codieren unbekannt ist. Seine Vielseitigkeit erstreckt sich auf das Extrahieren von Attributwerten, den Umgang mit dem Fehlen von Attributen sowie das Identifizieren und Aufrufen von Methoden mit spezifischen Namenskonventionen. Nutzen Sie die Leistungsfähigkeit von getattr für die dynamische Attributmanipulation in Ihrer Python-Programmierung.
Das obige ist der detaillierte Inhalt vonWann und wie sollten Sie die Python-Funktion „getattr()' verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!