在Python中,具有默认值的参数之间的区别是什么:
def f(a,b,c=1,d=2): pass
Run Code Online (Sandbox Code Playgroud)
和关键字参数:
def f(a=1,b=2,c=3): pass
Run Code Online (Sandbox Code Playgroud)
?我想这没什么区别,但是教程有两个部分:
4.7.1.默认参数值
4.7.2.关键字参数
这听起来有些不同.如果是这样,为什么我不能在2.6中使用这种语法:
def pyobj_path(*objs, as_list=False): pass
Run Code Online (Sandbox Code Playgroud)
?
默认参数意味着您可以保留一些参数.而不是f(1, 2, 3)你可以写f(1)或f(1, 2).
关键字参数意味着您不必将它们放在与函数定义相同的顺序中.而不是f(1, 2, 3)你能做到的f(c=3, b=2, a=1).
*args和/或**kwargs必须始终位于函数声明中参数列表的末尾(如果它们存在).特别:
def <function name>(
[<args without defaults>,]
[<args with defaults>,]
[*<variable length positional argument list name>,]
[**<arbitrary keyward argument dict name>]
):
<function body>
Run Code Online (Sandbox Code Playgroud)