函数的参数

看的是廖雪峰的Python3讲解,因为感觉很容易忘记,索性就写下来,以便后面查阅。

1、位置参数

eg: power (x,n),其中x,n都是位置参数,调用函数时,传入的两个值按照位置顺序依次赋值

2、默认参数

eg: power(x,n=2),n就是默认参数,再次调用power函数时,若n为2则不需要传入,默认n=2

但是要注意:(1) 必选参数必须在前,默认参数在后。

(2) 默认参数必须指向不变对象。若指向变量,则每次调用函数的时候,默认参数的值都会发生改变。

3、可变参数:传入的参数个数是可变的

利用可变参数,当传入多个参数的时候,不再需要传入一个list或tuple,而是直接传入多个参数,如calc(1,2,3),但在函数内部,参数接收到的是一个tuple。

可变参数函数定义如下:def calc(*numbers),对比之前定义list和tuple的时候,仅仅在参数前面加了一个*号。

如果已经有一个list或者tuple,要调用一个可变参数的函数,可直接写成calc(*num),在list或tuple前面加一个*号

4、关键字参数

可变参数允许你传入0个或任意个参数,这些可变参数在函数调用时自动组装成一个tuple。而关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict。在参数前面加两个**。实例如下

def person(name, age, **kw):

        print('name:', name, 'age:', age, 'other:', kw)

>>>person('Michael',30)

name: Michael age: 30 other: {}

>>>person('Adam', 45, gender='M',job='Engineer')

name: Adam age: 45 other: {'gender' : 'M', 'job': 'Engineer‘}

若本身有一个dict,可直接在前面加两个**作为参数传进去

5、命名关键字参数

def person(name, age, *, city, job) 命名关键字参数以*作为特殊分隔符

调用如下person('Jack', 30, city='Beijing', job='Engineer')

总结:

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

对于任意函数,都可以通过类似func(*args, **kw)的形式调用

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

推荐阅读更多精彩内容