ღ Miranda

Python 函数

函数是Python内建支持的一种封装,我们通过把大段代码拆成函数,通过一层一层的函数调用,就可以把复杂任务分解成简单的任务,这种分解可以称之为面向过程的程序设计。函数就是面向过程的程序设计的基本单元。

默认参数

有多个默认参数时,可以不按顺序提供默认参数,需要把参数名写上。如enroll('Adam', 'M', city='Tianjin')

当传入一个list为默认参数时:

原因解释如下:

Python函数在定义的时候,默认参数L的值就被计算出来了,即[],因为默认参数L也是一个变量,它指向对象[],每次调用该函数,如果改变了L的内容,则下次调用时,默认参数的内容就变了,不再是函数定义时的[]了。

所以,定义默认参数要牢记一点:默认参数必须指向不变对象!

要修改上面的例子,我们可以用None这个不变对象来实现,把[]改为None即可。

可变参数

当传入参数的数量是可变的时候,可以使用可变参数简化调用函数的方式。

将list或tuple作为可变参数调用可以再前面加*

关键字参数

关键字参数允许传入0个或任意个含参数名。

命名关键字参数

关键字参数传入不受限制,要限制关键字参数名字就要使用命名关键字参数:

命名关键字参数必须传入参数名,这和位置参数不同。如果没有传入参数名,调用将报错,定义时也可以使用默认参数。

参数组合

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

发表评论

电子邮件地址不会被公开。