Python函数的参数

在Python中,函数的参数有四种类型:必备参数、关键字参数、默认参数、不定长参数。

必备参数

最简单的传参方式,在其他语言中也比较常见。

例如:

def add(x, y):
    return x + y

add(10, 20)

此时,形参为x和y。而10和20作为实参传入函数add中。

在调用函数时,实参和形参的数量要相等。

关键字参数

Python中还可以用关键字的形式传递参数。

同时,参数还可以通过指定关键字名称的方式传递:

def add(x, y):
    return x + y

add(y=10, x=20) # 结果为30

默认参数

即如果没有为参数传递一个值,则使用默认的值。

def add(x, y=0):
    return x + y

add(10) # 结果为10
add(10, y=20) # 结果为30

在此函数调用中,需要为x传入一个值。

而对于y,如果选择不传入,则y默认为0。如果传入,则需要以参数名=值的形式设置y的值。

不定长参数

如果传入参数的数量不确定,可以使用如下格式:

def add(x, *y):
    result = x
    for i in y:
        result += i
    return result

add(10, 20)        # 结果为30
add(10, 20, 30)    # 结果为60
# 将列表中的所有元素作为参数传递
add(10, *[20, 30]) # 结果为60
# 将元组中的所有元素作为参数传递
add(10, *(20, 30)) # 结果为60

此时,x作为形参必须设置一个值。而y则相当于是一个列表或元组,其中可以包含多个值,其数量取决于在调用函数时传入的参数数量。

不定长参数还有关键字形式的传入方式:

def add(x, **y):
    result = x
    for key,value in y.items():
        print('key-value:', key + '-' + str(value))
        result += value
    return result

add(1, a=1, b=2)
add(1, **{'a':1, 'b':2, 'c':3})

此时y作为形参,前面有两个星号,表示传入的参数为字典格式,每个参数都是一个key-value的键值对。

参数组合

当同时具备必备参数、关键字参数、默认参数、不定长参数时,四种参数必须按序排列:

def add(a, b=2, *c, **d):
    """snip"""

你可能感兴趣的:(Python函数的参数)