小编典典

普通参数与关键字参数

all

“关键字参数”与常规参数有何不同?不能将所有参数都传递为name=value而不是使用位置语法吗?


阅读 124

收藏
2022-04-14

共1个答案

小编典典

有两个相关的概念,都称为“ 关键字参数 ”。

在调用方,也就是其他评论者提到的,您可以按名称指定一些函数参数。 您必须在所有没有名称的参数(位置参数 )之后提及它们,并且任何未提及的参数都必须有
默认值

另一个概念是在函数定义方面:您可以定义一个按名称获取参数的函数——您甚至不必指定这些名称是什么。这些是纯 关键字参数 ,不能按位置传递。语法是

def my_function(arg1, arg2, **kwargs)

您传递给此函数的任何 关键字参数 都将放入名为kwargs. 您可以在运行时检查此字典的键,如下所示:

def my_function(**kwargs):
    print str(kwargs)

my_function(a=12, b="abc")

{'a': 12, 'b': 'abc'}
2022-04-14