getattr(object, string)
intégré de Python la fonction renvoie la valeur du object
's attribut avec le nom string
. S'il n'existe pas, il renvoie la valeur fournie sous la forme d'un troisième default
facultatif dispute. Si cela n'existe pas non plus, il lève un AttributeError
. Un exemple est getattr(porsche, 'speed')
qui équivaut à porsche.speed
.
Utilisation
Apprenez par l'exemple ! Voici un exemple d'utilisation du getattr()
fonction intégrée.
# Define class with one attribute class Car: def __init__(self, brand, speed): self.brand = brand self.speed = speed # Create object porsche = Car('porsche', 100) tesla = Car('tesla', 110) # Two alternatives to get instance attributes: print(getattr(porsche, 'brand') + " " + str(getattr(porsche, 'speed'))) print(tesla.brand + " " + str(tesla.speed)) # Get an attribute that doesn't exist with default argument: print(getattr(porsche, 'color', 'red'))
Le résultat de cet extrait de code est :
porsche 100 tesla 110 red
Syntaxe getattr()
Le getattr()
objet a la syntaxe suivante :
Syntax:
getattr(object, attribute[, default]) # Get object's attribute value or default if non-existent
Arguments | object | L'objet à partir duquel la valeur d'attribut doit être tirée. |
attribute | Le nom de l'attribut sous forme de chaîne. | |
default | La valeur de retour au cas où l'attribut n'existe pas. | |
Valeur de retour | object | Renvoie la valeur du attribute de l'instance object ou default si inexistant. |
Vidéo getattr()
Valeur renvoyée par getattr()
Le getattr(object, attribute, default)
renvoie l'un des éléments suivants :
- la valeur du
object
attribute
default
, si l'attribut n'existe pasAttributeError
si ni l'attribut n'existe, nidefault
est fourni.
Exercice Shell interactif :Comprendre getattr()
Considérez le code interactif suivant :
Exercice : Corrigez l'erreur dans le code !
Mais avant de continuer, je suis ravi de vous présenter mon nouveau livre Python Python One-Liners (Lien Amazon).
Si vous aimez les one-liners, vous allez adorer le livre. Il vous apprendra tout ce qu'il y a à savoir sur une seule ligne de code Python. Mais c'est aussi une introduction à l'informatique , science des données, apprentissage automatique et algorithmes. L'univers en une seule ligne de Python !
Le livre est sorti en 2020 avec l'éditeur de livres de programmation de classe mondiale NoStarch Press (San Francisco).
Lien :https://nostarch.com/pythononeliners
Pourquoi utiliser getattr() au lieu du point pour obtenir un attribut ?
Vous avez vu deux alternatives pour obtenir un attribut :
getattr(object, attribute_str)
object.attribute
Pourquoi utiliser la fonction getattr() plutôt que la syntaxe pointée plus concise ?
Il y a deux raisons principales :
getattr()
fournit une valeur par défaut au cas où l'attribut n'existe pas alors que la syntaxe à points renvoie une erreur.getattr()
permet d'accéder dynamiquement à l'attribut avec la chaîne au lieu du nom. Par exemple, vous pouvez obtenir la chaîne en tant qu'entrée utilisateur, auquel cas vous ne pouvez pas utiliser la syntaxe à pointsobject.attribute
carattribute
est une chaîne, pas un nom.
Fonctions associées
- Le
getattr()
la fonction renvoie la valeur d'un attribut. - Le
setattr()
la fonction modifie la valeur d'un attribut. - Le
hasattr()
la fonction vérifie si un attribut existe. - Le
delattr()
la fonction supprime un attribut existant.
Résumé
getattr(object, string)
intégré de Python la fonction renvoie la valeur du object
's attribut avec le nom string
.
# Define class with one attribute class Car: def __init__(self, brand, speed): self.brand = brand self.speed = speed porsche = Car('porsche', 100) print(getattr(porsche, 'brand') + " " + str(getattr(porsche, 'speed'))) # porsche 100
S'il n'existe pas, il renvoie la valeur fournie sous la forme d'un troisième default
facultatif dispute.
print(getattr(porsche, 'color', 'red')) # red
Si cela n'existe pas non plus, il lève un AttributeError
.
print(getattr(porsche, 'color')) ''' Traceback (most recent call last): File "C:\Users\xcent\Desktop\Finxter\Blog\HowToConvertBooleanToStringPython\code.py", line 12, in <module> print(getattr(porsche, 'color')) AttributeError: 'Car' object has no attribute 'color' '''
Un exemple est getattr(porsche, 'speed')
qui équivaut à porsche.speed
.
print(getattr(porsche, 'speed')) print(porsche.speed) # Both print attribute value: 100
J'espère que vous avez apprécié l'article! Pour améliorer votre formation Python, vous pouvez rejoindre la populaire et gratuite Finxter Email Academy :
Voulez-vous améliorer vos compétences Python d'une manière amusante et facile à consommer ? Considérez les ressources suivantes et devenez un maître codeur !