Python hasattr()-Funktion
Python3 integrierte Funktionen
hasattr()Es ist eine in Python eingebaute Funktion, mit der überprüft wird, ob ein Objekt ein bestimmtes Attribut besitzt.
hasattr()Es gibt einen booleschen Wert zurück, der angibt, ob das Objekt das angegebene Attribut enthält. Dies ist sehr nützlich beim Umgang mit dynamischen Attributen oder wenn zuerst geprüft werden muss, ob ein Attribut existiert.
Wortdefinitionen: hasattr 是 has attribute(有属性)的缩写。
Grundlegende Syntax und Parameter
Syntaxformat
hasattr(object, name)
Parameterbeschreibung
- Parameter object:
- Typ: Beliebiges Objekt
- Beschreibung: Das zu prüfende Objekt.
- Parametername:
- Typ: String
- Beschreibung: Der Attributname.
Funktionsbeschreibung
- Rückgabewert: Gibt einen booleschen Wert zurück
TrueoderFalse。
Beispiele
Beispiel 1: Grundlegende Verwendung
Beispiel
class Person:
def __init__(self):
self.name = "Tom"
self.age = 20
p = Person()
# Prüfen, ob das Attribut existiert
print(hasattr(p, "name")) # Ausgabe: True
print(hasattr(p, "age")) # Ausgabe: True
print(hasattr(p, "gender")) # Ausgabe: False
# Die Methode prüfen
print(hasattr(p, "name")) # Ausgabe: True
print(hasattr(p, "walk")) # Ausgabe: False
def __init__(self):
self.name = "Tom"
self.age = 20
p = Person()
# Prüfen, ob das Attribut existiert
print(hasattr(p, "name")) # Ausgabe: True
print(hasattr(p, "age")) # Ausgabe: True
print(hasattr(p, "gender")) # Ausgabe: False
# Die Methode prüfen
print(hasattr(p, "name")) # Ausgabe: True
print(hasattr(p, "walk")) # Ausgabe: False
Erwartete Ausgabe:
True True False True False
Code-Erklärung:
- hasattr() prüft, ob ein Objekt das angegebene Attribut besitzt.
Beispiel 2: Arbeiten mit getattr
Beispiel
# Attribut sicher abrufen
class Config:
def __init__(self):
self.debug = True
self.port = 8080
config = Config()
# Erst prüfen, dann abrufen
if hasattr(config, "debug"):
print(f"debug: {config.debug}")
if hasattr(config, "timeout"):
print(f"timeout: {config.timeout}")
else:
print("timeout existiert nicht, Standardwert wird verwendet")
# Ausgabe: timeout existiert nicht, Standardwert wird verwendet
# Dynamische Prüfung
attrs = ["debug", "port", "host"]
for attr in attrs:
if hasattr(config, attr):
print(f"{attr}: {getattr(config, attr)}")
class Config:
def __init__(self):
self.debug = True
self.port = 8080
config = Config()
# Erst prüfen, dann abrufen
if hasattr(config, "debug"):
print(f"debug: {config.debug}")
if hasattr(config, "timeout"):
print(f"timeout: {config.timeout}")
else:
print("timeout existiert nicht, Standardwert wird verwendet")
# Ausgabe: timeout existiert nicht, Standardwert wird verwendet
# Dynamische Prüfung
attrs = ["debug", "port", "host"]
for attr in attrs:
if hasattr(config, attr):
print(f"{attr}: {getattr(config, attr)}")
Ausgabe:
Die Ausführung in einer tatsächlichen Umgebung zeigt das Prüfergebnis an.
hasattr()Wird oft verwendet mitgetattr()in Verbindung mit.
Python3 integrierte Funktionen
Andere Erweiterungen