python-调用函数(3)

2017-03-03  本文已影响0人  ragna

参数组合

在Python中定义函数,可以用必选参数、默认参数、可变参数、关键字参数和命名关键字参数,这5种参数都可以组合使用。但是请注意,

参数定义的顺序必须是:必选参数、默认参数、可变参数、命名关键字参数和关键字参数。

可变参数*args(默认名称),传入的是一个tuple,且这个tuple是原数据的副本,无论怎么操作也不会对原数据有影响。

关键字参数**kw(默认名称),传入的是一个dict,且进入函数的是副本。

命名关键字参数,如我只接收city和job作为我的关键字参数:

图1 关键字参数函数定义-1

和关键字参数**kw不同,命名关键字参数需要一个特殊分隔符*,*后面的参数被视为命名关键字参数。

调用方式如下:

图2 关键字参数函数调用-1

如果函数定义中已经有了一个可变参数,后面跟着的命名关键字参数就不再需要一个特殊分隔符*了:

图3 关键字参数函数定义-2

命名关键字参数必须传入参数名,这和位置参数不同。如果没有传入参数名,调用将报错:

命名关键字参数可以有缺省值,从而简化调用:

def person(name, age, *, city='Beijing', job):

    print(name, age, city, job)

由于命名关键字参数city具有默认值,调用时,可不传入city参数:

>>>person('Jack',24, job='Engineer')

>>>Jack 24 Beijing Engineer

对于任意函数,都可以通过类似func(*args, **kw)的形式调用它,无论它的参数是如何定义的.

上一篇下一篇

猜你喜欢

热点阅读