Я видел оба пути, но я не понимаю, в чем разница и что я должен использовать в качестве "лучшей практики":
def custom_function(**kwargs):
foo = kwargs.pop('foo')
bar = kwargs.pop('bar')
...
def custom_function2(**kwargs):
foo = kwargs.get('foo')
bar = kwargs.get('bar')
...