Клас 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добре, доки вам не потрібно підбирати цей вирок за замовчуванням.