La fonction getattr() en Python

Article publié le et mis à jour le .

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 classe
  • name : le nom de l’attribut
  • default (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 fonction getattr, 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ètre default 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.