Si j'avais un dictionnaire dict
et que je voulais vérifier dict['key']
Je pouvais le faire dans un bloc try
(bleh!) Ou utiliser la fonction get()
méthode, avec False
comme valeur par défaut.
Je voudrais faire la même chose pour object.attribute
. Autrement dit, j'ai déjà un objet pour retourner False
s'il n'a pas été défini, mais cela me donne des erreurs comme
AttributeError: l'objet 'bool' n'a pas d'attribut 'attribute'
Un analogue plus direct de dict.get(key, default)
que hasattr
est getattr
.
val = getattr(obj, 'attr_to_check', default_value)
(Où default_value
est facultatif, levant une exception sur aucun attribut s'il n'est pas trouvé.)
Pour votre exemple, vous passeriez False
.
Voulez-vous dire hasattr()
peut-être?
hasattr(object, "attribute name") #Returns True or False
doc Python.org - Fonctions intégrées - hasattr ()
Vous pouvez également le faire, ce qui est un peu plus encombré et ne fonctionne pas pour les méthodes.
"attribute" in obj.__dict__
Pour vérifier si une clé se trouve dans un dictionnaire, vous pouvez utiliser in
: 'key' in dictionary
.
Pour vérifier les attributs dans l'objet, utilisez la fonction hasattr()
: hasattr(obj, 'attribute')