La classe collections.defaultdict
prend une fabrique par défaut, utilisée pour générer une valeur par défaut.
Si les valeurs contenues dans l' dict
objet -like doivent avoir la valeur par défaut False
, l'instance peut être créée comme suit:
d_false = defaultdict(bool)
Quelle est la manière la plus pythonique d'obtenir la même chose pour une valeur par défaut de True
?
En d'autres termes, existe-t-il un objet appelable standard retournant True
qui est utilisé de manière idiomatique comme parent de bool
?
Bien sûr, l'usine pourrait être construite comme une expression lambda:
d_true = defaultdict(lambda: True)
mais cela pourrait réinventer la roue.
int() == 0
, list() == []
, str() == ''
, etc. Je ne pense pas qu'il y ait un moyen standard pour le faire.
lambda: value
construction est la manière idiomatique Pythonic de construire un dict avec une valeur statique par défaut; Je ne connais aucun moyen plus simple d'obtenir le retour d'une fonction True
.
object()
c'est vrai - je ne sais pas si c'est utile
lambda: True
est bien tant que vous n'avez pas besoin de décaper ce défaut.