La clase collections.defaultdict
toma una fábrica predeterminada, utilizada para generar un valor predeterminado.
Si los valores contenidos en el dict
objeto -like deberían ser predeterminados False
, la instancia se puede crear como:
d_false = defaultdict(bool)
¿Cuál es la forma más pitónica de lograr lo mismo para un valor predeterminado de True
?
En otros términos, ¿hay un retorno de objeto invocable estándar True
que se utiliza idiomáticamente como pariente de bool
?
Por supuesto, la fábrica podría construirse como una expresión lambda:
d_true = defaultdict(lambda: True)
pero esto podría estar reinventando la rueda.
int() == 0
, list() == []
, str() == ''
, etc. Así que no creo que haya una manera estándar de hacer esto.
lambda: value
construcción es la forma idiomática pitónica de construir un dict con un valor estático predeterminado; No conozco una forma más simple de hacer que una función regrese True
.
object()
es Truthy - no estoy seguro si eso es útil
lambda: True
está bien siempre y cuando no necesite encurtir ese defecto predeterminado.