Класс collections.defaultdict
принимает фабрику по умолчанию, используемую для генерации значения по умолчанию.
Если значения, содержащиеся в dict
объекте -like, должны иметь значение по умолчанию False
, экземпляр может быть создан как:
d_false = defaultdict(bool)
Какой самый питонный способ добиться того же для значения по умолчанию True
?
Другими словами, есть ли возвращаемый стандартный вызываемый объект, True
который идиоматически используется как относительное значение bool
?
Конечно, фабрика может быть построена как лямбда-выражение:
d_true = defaultdict(lambda: True)
но это может быть изобретением колеса.
int() == 0
, list() == []
, str() == ''
и т.д. Так что я не думаю , что есть стандартный способ сделать это.
lambda: value
Конструкция является идиоматическим Pythonic способом построить Dict со статическим значением по умолчанию; Я не знаю более простого способа вернуть функцию True
.
object()
правдивым - не уверен, что это полезно
lambda: True
это хорошо, если вам не нужно мариновать этот defaultdict.