python pour débutant
- pytest: lancez uniquement des tests avec un appareil particulier
- WordPress 5.3 Briefing | WP apprenti
- Démolition du site Web d'une petite entreprise 150k 2019 • WPShout
- Sondage: Quels sont les frameworks de test qui vous intéressent le plus?
- L'opérateur Modulo Python et la gestion des données avec SQLite et SQLAlchemy – Le véritable podcast 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]