Python关键字args vs kwargs

Mat*_*y P 2 python kwargs keyword-argument

这可能是一个简单的问题:

这两个之间有什么区别:

def myfunc(a_list = [], **kwargs):
    my_arg = kwargs.get('my_arg', None)
    pass
Run Code Online (Sandbox Code Playgroud)

def myfucn(a_list = [], my_arg = None):
    pass
Run Code Online (Sandbox Code Playgroud)

如果没有,哪个会被认为更加pythonic?

谢谢,-Matt

jat*_*ism 7

对于一个简单的函数,显式定义你的参数更加Pythonic.除非您有合法的要求接受任意数量的未知或变量参数,否则该**kwargs方法会增加不必要的复杂性.

额外:永远不要在函数定义中初始化列表!这可能会导致意外结果,因为列表是可变的!