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
对于一个简单的函数,显式定义你的参数更加Pythonic.除非您有合法的要求接受任意数量的未知或变量参数,否则该**kwargs方法会增加不必要的复杂性.
额外:永远不要在函数定义中初始化列表!这可能会导致意外结果,因为列表是可变的!