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 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 :
L'utilisation de getattr()
getattr() est particulièrement utile lorsque :
Par exemple, considérons un objet Person avec les attributs nom et sexe :
class Person: name = 'John' gender = 'Male'
Pour accéder au attribut name utilisant getattr() :
name = getattr(person, 'name')
C'est équivalent to :
name = person.name
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)
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 :
for attr in dir(obj): value = getattr(obj, attr)
test_methods = [ getattr(obj, attr) for attr in dir(obj) if attr.startswith('test') ]
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!