Truco Python: El funcionario (o la Dicción)
Supongamos que alguna vez expusiste un diccionario como parte de la interface de un objeto. Así que la gente viene haciendo cosas como esta:
object.data[foo]['bar']
Y ahora no querés que foo
sea obligatorio, porque lo podés adivinar, o
tiene un default razonable. De hecho, lo que querés exponer es esto:
object.data(bar, foo='foo')
Acá hay una idea de como hacerlo sin romper el código viejo:
Eso es un diccionario que es "callable", con lo que es indistinguible de una función. Una función-diccionario. Un funcionario. Y por supuesto lo podés hacer al revés e implementar una función que sirva como diccionario. Un diccionario-función, una dicción. Pero como ese es más laburo, hice este.