Wie ermittelt man die Attributverfügbarkeit in Python: „hasattr()' vs. „Bitte um Verzeihung, nicht um Erlaubnis'?

Barbara Streisand
Freigeben: 2024-11-11 13:34:02
Original
145 Leute haben es durchsucht

How to Determine Attribute Availability in Python: `hasattr()` vs.

Attributverfügbarkeit ermitteln

In Python kann der Zugriff auf ein Attribut eines Objekts ohne Überprüfung seiner Existenz zu AttributeError führen. Um dies zu vermeiden, ist es wichtig, festzustellen, ob ein Attribut vorhanden ist, bevor versucht wird, darauf zuzugreifen.

hasattr()-Funktion

Eine Methode, um nach einem Attribut zu suchen, ist die hasattr()-Funktion. Es werden zwei Argumente benötigt:

  • Das zu untersuchende Objekt
  • Der Name des Attributs

True zurückzugeben, wenn das Attribut vorhanden ist, hasattr() ist nützlich wenn Sie seine Anwesenheit überprüfen müssen, ohne eine Ausnahme auszulösen.

a = SomeClass()
if hasattr(a, 'property'):
    a.property
Nach dem Login kopieren

Vor- und Nachteile von hasattr()

Die Verwendung von hasattr() bietet Ihnen die nötige Flexibilität um die Attributverfügbarkeit zu ermitteln, ohne eine Ausnahme auszulösen. Es kann jedoch zu einer zusätzlichen Komplexitätsstufe Ihres Codes führen.

Bitten Sie um Verzeihung, nicht um Erlaubnis

Ein alternativer Ansatz, der häufig in Python verwendet wird, ist „fragen“. „Vergebung, nicht Erlaubnis“-Philosophie. Dazu gehört der Zugriff auf das Attribut und das ordnungsgemäße Abfangen der potenziellen AttributeError-Ausnahme.

try:
    a.property
except AttributeError:
    # Handle the absence of the attribute
Nach dem Login kopieren

Dieser Ansatz ist im Allgemeinen schneller als die Verwendung von hasattr(), insbesondere wenn das Attribut wahrscheinlich die meiste Zeit vorhanden ist. Es ist jedoch wichtig, die Ausnahme angemessen zu behandeln, wenn sie auftritt.

Das obige ist der detaillierte Inhalt vonWie ermittelt man die Attributverfügbarkeit in Python: „hasattr()' vs. „Bitte um Verzeihung, nicht um Erlaubnis'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
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