Fonction hasattr() de Python
Fonctions intégrées de Python3
hasattr()C'est une fonction intégrée de Python utilisée pour vérifier si un objet possède un attribut spécifié.
hasattr()Il renvoie une valeur booléenne indiquant si l’objet contient l’attribut spécifié. Cela est très utile lors de la gestion d’attributs dynamiques ou lorsque vous devez d’abord vérifier si un attribut existe.
Définitions de mots: hasattr 是 has attribute(有属性)的缩写。
Syntaxe de base et paramètres
Format de syntaxe
hasattr(object, name)
Description du paramètre
- Paramètre object:
- Type : Tout objet
- Description : L'objet à vérifier.
- Nom du paramètre:
- Type : String
- Description : Le nom de l’attribut.
Description de la fonction
- Valeur de retour: Renvoie une valeur booléenne
TrueouFalse。
Exemples
Exemple 1 : Utilisation de base
Exemple
class Person:
def __init__(self):
self.name = "Tom"
self.age = 20
p = Person()
# Vérifier si l’attribut existe
print(hasattr(p, "name")) # Sortie : True
print(hasattr(p, "age")) # Sortie : True
print(hasattr(p, "gender")) # Sortie : False
# Vérifier la méthode
print(hasattr(p, "name")) # Sortie : True
print(hasattr(p, "walk")) # Sortie : False
def __init__(self):
self.name = "Tom"
self.age = 20
p = Person()
# Vérifier si l’attribut existe
print(hasattr(p, "name")) # Sortie : True
print(hasattr(p, "age")) # Sortie : True
print(hasattr(p, "gender")) # Sortie : False
# Vérifier la méthode
print(hasattr(p, "name")) # Sortie : True
print(hasattr(p, "walk")) # Sortie : False
Sortie attendue :
True True False True False
Explication du code :
- hasattr() vérifie si un objet possède l’attribut spécifié.
Exemple 2 : Utilisation de getattr
Exemple
# Obtenir l’attribut en toute sécurité
class Config:
def __init__(self):
self.debug = True
self.port = 8080
config = Config()
# Vérifier d'abord, puis récupérer
if hasattr(config, "debug"):
print(f"debug: {config.debug}")
if hasattr(config, "timeout"):
print(f"timeout: {config.timeout}")
else:
print("timeout n'existe pas, utilisation de la valeur par défaut")
# Sortie : timeout n'existe pas, utilisation de la valeur par défaut
# Vérification dynamique
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()
# Vérifier d'abord, puis récupérer
if hasattr(config, "debug"):
print(f"debug: {config.debug}")
if hasattr(config, "timeout"):
print(f"timeout: {config.timeout}")
else:
print("timeout n'existe pas, utilisation de la valeur par défaut")
# Sortie : timeout n'existe pas, utilisation de la valeur par défaut
# Vérification dynamique
attrs = ["debug", "port", "host"]
for attr in attrs:
if hasattr(config, attr):
print(f"{attr}: {getattr(config, attr)}")
Sortie :
L'exécution dans un environnement réel affichera le résultat de la vérification.
hasattr()Souvent utilisé avecgetattr()en conjonction avec.
Fonctions intégrées de Python3
Autres extensions