Forma correcta de usar ** kwargs en Python

¿Cuál es la forma correcta de usar?**kwargs en Python cuando se trata de valores por defecto?

kwargs devuelve un diccionario, pero ¿cuál es la mejor manera de establecer los valores predeterminados, o hay uno? ¿Debo acceder a él como un diccionario? ¿Usar función get?

class ExampleClass:
    def __init__(self, **kwargs):
        self.val = kwargs['val']
        self.val2 = kwargs.get('val2')

Una pregunta simple, pero en la que no puedo encontrar buenos recursos. La gente lo hace de diferentes maneras en el código que he visto y es difícil saber qué usar.

Respuestas a la pregunta(14)

Su respuesta a la pregunta