La fonction getattr() en Python
La fonction native getattr() retourne la valeur d’un attribut nommé d’un objet. Elle retourne la valeur par défaut si rien n’a été trouvé.
class Site:
url = 'commentcoder.com'
langue = 'français'
theme = 'code'
comment_coder = Site()
url = getattr(comment_coder, 'url')
print(url) # commentcoder.com
langue = getattr(comment_coder, 'langue')
print(langue) # français
theme = getattr(comment_coder, 'theme')
print(theme) # code
prix = getattr(comment_coder, 'prix', 0)
print(prix) # 0
💡 Vous voulez en apprendre plus sur les fonctions comme
getattr()
? J’ai écrit un article qui reprend toutes les fonctions natives en Python.
Quelle est la syntaxe de la fonction getattr() ?
La syntaxe de la fonction getattr()
en Python est :
getattr(objet, attribut, valeur_par_defaut)
Ce qui est équivalant à appeler :
objet.attribut
class Site:
url = 'commentcoder.com'
comment_coder = Site()
print(getattr(comment_coder, 'url')) # commentcoder.com
print(comment_coder.url) # commentcoder.com
Quels paramètres prend la fonction getattr() ?
La fonction getattr()
prend 2 ou 3 paramètres :
object
: le nom de l’objet de classename
: le nom de l’attributdefault
(optionnel): la valeur qui sera renvoyée si l’attribut n’existe pas, sinon lève une erreur
Quelle valeur renvoie la fonction getattr() ?
La fonction getattr()
renvoie :
- la valeur de l’attribut de l’objet si trouvé
- la valeur
default
, troisième paramètre de la fonctiongetattr
, si l’attribut n’a pas été trouvé - une erreur est levé et l’exception
AttributeError
est retournée si l’attribut n’a pas été trouvé et le paramètredefault
n’a pas été fourni
Aller plus loin avec getattr
La fonction native getattr fonctionne bien avec les autres fonctions qui gerent les attributs : hasattr, setattr et delattr.
J’ai écrit des articles pour chacune d’entres-elles, vous trouverez l’article en cliquant sur leur lien respectif.
Je m'appelle Thomas, et je code depuis plus de 20 ans. Depuis ma sortie de la première promotion de l'École 42, j'ai conçu et développé des centaines d'applications et de sites web. Sur ce blog, je partage avec vous les stratégies les plus efficaces pour maîtriser l'art de coder et progresser rapidement.