Maison >développement back-end >Tutoriel Python >Comment fonctionne la fonction « getattr() » de Python et quand dois-je l'utiliser ?
Introduction :
getattr() est un construit -in Fonction Python qui permet d'accéder dynamiquement à un attribut d'un objet en passant son nom sous forme de chaîne. Cela offre flexibilité et polyvalence lorsque vous travaillez avec des objets et accédez dynamiquement à leurs propriétés.
Description :
getattr(object, name, default=None) renvoie l'attribut du 'objet' qui est nommé par 'nom'. Si l'attribut n'existe pas, il déclenche une exception AttributeError. Cependant, vous pouvez spécifier une valeur « par défaut » à renvoyer à la place.
Scénarios d'utilisation :
Lorsque vous devez accéder à un attribut d'un objet mais que son nom est stocké dans une variable ou déterminé lors de l'exécution, getattr() devient utile. Considérez l'extrait de code suivant :
class Person: name = "John" age = 25 attr_name = "age" person = Person() # Access attribute dynamically using getattr() age = getattr(person, attr_name)
Dans cet exemple, l'attribut 'age' est accessible à l'aide de getattr(). Le premier argument est l'objet (personne), le deuxième est le nom de l'attribut (attr_name) et le troisième argument (default=None) n'est pas utilisé puisque l'attribut existe.
Itération avec getattr( ) et dir() :
Vous pouvez également utiliser getattr() en conjonction avec la fonction dir() pour parcourir tous les attributs d'un objet et obtenir leurs valeurs. Le code suivant le démontre :
for attr_name in dir(person): attr_value = getattr(person, attr_name) # Do something with attr_name and attr_value
Applications pratiques :
Conclusion :
getattr() est un outil puissant pour accéder et manipuler dynamiquement les attributs des objets en Python. Il offre de la flexibilité et permet des scénarios complexes de récupération d'attributs, ce qui en fait une technique essentielle pour le développement Python avancé.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!