Tenemos una gran cantidad de código en nuestra base de código interna que llama a nuestras bibliotecas internamente; estas bibliotecas a menudo tienen muchos argumentos (piense en matplotlib) y nuestro código a menudo solo realiza una tarea específica y simplemente pasa **kwargs
la siguiente función llamada.
P.ej:
def our_method(dataframe, **kwargs):
result = do_something_with_data(dataframe)
external_module.draw(result, **kwargs)
Si bien **kwargs
nos impide repetir todos los parámetros en nuestra declaración de método, también hace que sea extremadamente opaco qué argumentos son válidos al llamar our_method
: tengo que saber qué método se llama, lo que a menudo no quiero saber.
¿Cuál es su opinión sobre esto?
Si la función de siguiente nivel tiene un __doc__, puede copiar el __doc__ a su nueva función.
Por ejemplo:
Esto podría aplicarse de forma recursiva, y podría ser aplicado por un decorador (lo que podría ser útil si está haciendo esto de forma masiva de todos modos). La cadena __doc__ también podría manipularse para agregar más al final. Esto significa que los parámetros mostrados seguirían siendo kwargs, pero al menos hay documentación en la ayuda que describe los parámetros reales.
fuente