python-调用函数(3)

参数组合

在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)的形式调用它,无论它的参数是如何定义的.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Python 是一种相当高级的语言,通过 Python 解释器把符合语法的程序代码转换成 CPU 能够执行的机器码...
    Python程序媛阅读 1,941评论 0 3
  • 1.定义函数: 没有return,默认返回None 2.定义空函数 相当于什么也不做,可以用来做函数体占位符,没有...
    maskwang520阅读 338评论 0 0
  • 1.函数参数 1.1 位置参数 我们先写一个计算x2的函数: 对于power(x)函数,参数x就是一个位置参数。当...
    时间之友阅读 379评论 0 2
  • 位置参数 我们先写一个计算x2的函数: 对于power(x)函数,参数x就是一个位置参数。 当我们调用power函...
    喵在野阅读 312评论 0 1
  • python函数的参数是目前见过最复杂的参数了。 C语言里用的最多的可变参数函数就是scanf和printf了,j...
    米耳阅读 359评论 0 0