Klasa collections.defaultdict
przyjmuje domyślną fabrykę, służącą do generowania wartości domyślnej.
Jeśli wartości zawarte w dict
podobnym obiekcie powinny mieć wartość domyślną False
, instancję można utworzyć jako:
d_false = defaultdict(bool)
Jaki jest najbardziej pytonowy sposób osiągnięcia tego samego dla wartości domyślnej True
?
Innymi słowy, czy jest zwracany standardowy obiekt na żądanie True
który jest idiomatycznie używany jako krewny bool
?
Oczywiście fabrykę można zbudować jako wyrażenie lambda:
d_true = defaultdict(lambda: True)
ale to może być wynalezienie koła na nowo.
int() == 0
, list() == []
, str() == ''
, itd. Więc nie sądzę, jest to standardowy sposób to zrobić.
lambda: value
Konstrukt jest idiomatyczne pythonowy sposób skonstruować dict ze statycznym wartości domyślnej; Nie znam prostszego sposobu na zwrócenie funkcji True
.
object()
być prawdą - nie jestem pewien, czy to jest przydatne
lambda: True
jest w porządku, o ile nie musisz marynować tego domyślnego nakazu.