Класс 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.