A classe collections.defaultdict
usa uma fábrica padrão, usada para gerar um valor padrão.
Se os valores contidos no dict
objeto -like forem padronizados False
, a instância poderá ser criada como:
d_false = defaultdict(bool)
Qual é a maneira mais pitônica de conseguir o mesmo com um valor padrão de True
?
Em outros termos, existe um objeto padrão True
que pode ser retornado que é usado idiomaticamente como parente de bool
?
Obviamente, a fábrica poderia ser construída como uma expressão lambda:
d_true = defaultdict(lambda: True)
mas isso pode estar reinventando a roda.
int() == 0
, list() == []
, str() == ''
, etc. Então eu não acho que há uma maneira padrão para fazer isso.
lambda: value
construção é a maneira Python idiomática de construir um ditado com um valor padrão estático; Não conheço nenhuma maneira mais simples de obter uma função retornando True
.
object()
é truthy - não tenho certeza se isso é útil
lambda: True
é bom, desde que você não precise escolher esse padrão.