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