python pour débutant
- BlueHost vs Squarespace Comparaison 2020: Quel est le meilleur?
- Votre site Web WordPress est-il convivial pour le référencement?
- Développez votre portefeuille Python avec 13 idées de projets intermédiaires – Real Python
- Entretien de la communauté Python avec Kelly et Sean de Teaching Python – Real Python
- Créer un outil de changement de nom de fichier en masse avec Python et PyQt – Real Python
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]