Maison > développement back-end > Tutoriel Python > Qu'est-ce que la fonction « getattr() » de Python et comment puis-je l'utiliser ?

Qu'est-ce que la fonction « getattr() » de Python et comment puis-je l'utiliser ?

Susan Sarandon
Libérer: 2024-12-16 21:26:16
original
740 Les gens l'ont consulté

What is Python's `getattr()` Function and How Can I Use It?

Qu'est-ce que getattr() et comment l'utiliser ?

Obtenir les attributs d'un objet est une pratique courante dans la programmation Python. Bien qu'il soit pratique d'accéder directement aux attributs à l'aide de la notation par points, il peut arriver que le nom de l'attribut soit stocké dynamiquement ou soit inconnu au préalable. C'est là que la fonction getattr() entre en jeu.

Comprendre getattr()

getattr() est une fonction Python intégrée qui permet de récupérer une valeur d'attribut à partir d’un objet lorsqu’il est fourni avec son nom sous forme de chaîne. Il faut trois arguments :

  1. object : L'objet à partir duquel l'attribut doit être récupéré.
  2. attr_name : Le nom de l'attribut sous forme de chaîne.
  3. default : (Facultatif) Une valeur par défaut à renvoyer si l'attribut n'existe pas.

L'utilisation de getattr()

getattr() est particulièrement utile lorsque :

  • Les noms d'attributs sont générés dynamiquement ou stockés dans des variables.
  • L'existence d'un attribut doit être vérifiée par programmation.
  • Récupération des attributs de sous-classes ou de métaclasses.

Par exemple, considérons un objet Person avec les attributs nom et sexe :

class Person:
    name = 'John'
    gender = 'Male'
Copier après la connexion

Pour accéder au attribut name utilisant getattr() :

name = getattr(person, 'name')
Copier après la connexion

C'est équivalent to :

name = person.name
Copier après la connexion

Cependant, getattr() devient utile lorsque le nom de l'attribut n'est pas connu au moment de la compilation, par exemple lorsqu'il est stocké dans une variable :

attr_name = 'gender'
gender = getattr(person, attr_name)
Copier après la connexion

Remarque : getattr() déclenche une AttributeError si l'attribut n'existe pas, sauf si une valeur par défaut est fournie comme troisième argument.

Autres applications

Au-delà de la récupération des attributs, getattr() a d'autres applications :

  • Itération dynamique sur les attributs à l'aide de dir() :
for attr in dir(obj):
    value = getattr(obj, attr)
Copier après la connexion
  • Trouver des méthodes spécifiques ou attributs :
test_methods = [
    getattr(obj, attr)
    for attr in dir(obj)
    if attr.startswith('test')
]
Copier après la connexion

Conclusion

getattr() est une fonction polyvalente qui permet la récupération programmatique des attributs des objets. Ses cas d'utilisation vont de l'accès à des attributs stockés dynamiquement à l'exploration dynamique d'objets. Comprendre son utilisation permet une plus grande flexibilité et un plus grand contrôle lorsque vous travaillez avec des objets en Python.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal