Temos muito código em nossa base de código interna que chama nossas bibliotecas internamente - essas bibliotecas costumam ter muitos argumentos (pense em matplotlib) e nosso código geralmente executa apenas uma tarefa específica e simplesmente passa **kwargs
para a próxima função chamada.
Por exemplo:
def our_method(dataframe, **kwargs):
result = do_something_with_data(dataframe)
external_module.draw(result, **kwargs)
Embora **kwargs
nos impeça de repetir todos os parâmetros em nossa declaração de método, também torna extremamente opaco quais argumentos são válidos ao chamar our_method
- eu tenho que saber qual método é chamado e que muitas vezes não quero saber.
Qual é a sua opinião sobre isso?
Se a função de próximo nível tiver um __doc__, você poderá copiar o __doc__ para sua nova função.
Por exemplo:
Isso pode se aplicar recursivamente e pode ser aplicado por um decorador (o que pode ser útil se você estiver fazendo isso em massa de qualquer maneira). A string __doc__ também poderia ser manipulada para adicionar mais ao final. Isso significa que os parâmetros mostrados ainda seriam kwargs, mas pelo menos há documentação na ajuda que descreve os parâmetros reais.
fonte