Expert Python
- 8 Caractéristiques d'un excellent site Web Portfolio
- perspectives, opinions, dogme et éléphant
- Définir et appeler des fonctions Python – Real Python
- Changer les valeurs de la base de données avec une meilleure recherche Remplacer dans la base de données WordPress • WPShout
- Comment utiliser Gutenberg avec Elementor – La bonne manière
Vous ne pouvez pas utiliser getattr ()
chercher des choses dans un dictionnaire.
Mais la fonctionnalité «par défaut» de getattr ()
est tellement utile.
Quelle est la façon dictée de faire la même chose?
C’est l’un de ces articles que j’écris car je continue à le chercher.
Donc, si je l'écris, je m'en souviendrai. J'espère.
getattr
J’utilise le paramètre ‘default’ pour getattr depuis un certain temps et c’est très pratique.
C'est pratique dans beaucoup d'endroits, et évite d'avoir à envelopper les choses dans les blocs try / except.
Un exemple simple:
essayer:
toto = paramètres.FOO
sauf AttributeError:
foo = Aucun
essayer: foo = réglages.FOO sauf AttributeError: foo = Aucun |
Peut être remplacé par:
foo = getattr (paramètres, 'FOO', Aucun)
foo = getattr(réglages, 'FOO', Aucun) |
dictionnaire get ()
Mais getattr
ne fonctionne pas comme je l’attendais pour les dictionnaires.
Cela fait quelque chose, mais pas ce à quoi je m'attendais.
La plupart du temps, il ne cherche pas d’objets.
Utilisation obtenir()
au lieu.
Remplacer:
essayer:
foo = aDictionary[‘FOO’]
sauf KeyError:
foo = Aucun
essayer: foo = un dictionnaire[[[['FOO'] sauf KeyError: foo = Aucun |
Avec:
foo = aDictionary.get ('FOO', Aucun)
foo = un dictionnaire.obtenir('FOO', Aucun) |
[ad_2]