Verwendung von hasattr()
bei der Klasse
In diesem Schritt lernen Sie, wie Sie die hasattr()
-Funktion in Python verwenden, um zu prüfen, ob eine Klasse oder ein Objekt ein bestimmtes Attribut hat. Diese Funktion ist nützlich, um festzustellen, ob ein Attribut existiert, bevor Sie versuchen, darauf zuzugreifen. Dies kann Fehler vermeiden und Ihren Code robuster machen.
Basierend auf dem vorherigen Beispiel verwenden wir hasattr()
, um die Existenz von Klassen- und Instanzattributen in der Dog
-Klasse zu prüfen:
-
Öffnen Sie die Datei class_attributes.py
in Ihrem VS Code-Editor (dies ist dieselbe Datei, die Sie im vorherigen Schritt erstellt haben).
~/project/class_attributes.py
-
Ändern Sie den Code, um hasattr()
-Prüfungen wie folgt einzubeziehen:
class Dog:
species = "Canis familiaris"
def __init__(self, name, age):
self.name = name
self.age = age
## Creating an instance of the Dog class
dog1 = Dog("Buddy", 3)
## Checking for the existence of class attributes
print(hasattr(Dog, "species"))
print(hasattr(Dog, "breed"))
## Checking for the existence of instance attributes
print(hasattr(dog1, "name"))
print(hasattr(dog1, "age"))
print(hasattr(dog1, "breed"))
In diesem Code verwenden wir hasattr()
, um zu prüfen, ob die Dog
-Klasse die Attribute species
und breed
hat und ob die Instanz dog1
die Attribute name
, age
und breed
hat.
-
Führen Sie das Skript class_attributes.py
mit dem folgenden Befehl im Terminal aus:
python class_attributes.py
Sie sollten die folgende Ausgabe sehen:
True
False
True
True
False
Die Ausgabe zeigt, dass die Dog
-Klasse das Attribut species
hat (True), aber nicht das Attribut breed
(False). Ebenso hat die Instanz dog1
die Attribute name
und age
(True), aber nicht das Attribut breed
(False).
hasattr()
gibt True
zurück, wenn das Attribut existiert, und False
sonst. Dies ermöglicht es Ihnen, bedingten Code zu schreiben, der unterschiedliche Fälle basierend auf der Existenz von Attributen behandelt. Beispielsweise möchten Sie möglicherweise einen Standardwert bereitstellen, wenn ein Attribut fehlt.
Dieses Beispiel zeigt, wie Sie hasattr()
verwenden können, um die Existenz von Attributen in einer Klasse und ihren Instanzen zu prüfen. Dies ist eine nützliche Technik für das Schreiben von flexiblerem und robusterem Code.