函数在编程语言中占据着主导地位,很多时候,重复的逻辑代码片段我们都是通过函数进行封装的。在这个过程中,很少有人去注意函数参数的问题。
对于函数来说,函数参数可以说是函数内部与外部交流的桥梁。对于很多编程语言来说,参数最决定了整个函数的运行结果。
函数在编程语言中占据着主导地位,很多时候,重复的逻辑代码片段我们都是通过函数进行封装的。在这个过程中,很少有人去注意函数参数的问题。
对于函数来说,函数参数可以说是函数内部与外部交流的桥梁。对于很多编程语言来说,参数最决定了整个函数的运行结果。
今天,就来探讨一下Python函数参数问题。
以下是自定义函数的简单规则:
1、函数代码块以def关键词开头,后接函数标识符名称和圆括号();
2、参数放在圆括号()内,个数不限。
3、函数内容以冒号起始,并且缩进。
4、函数结束前可以选则性的返回东西,不带return的函数默认返回None。
对于多数编程语言来说,以下这种参数方式应该算是一种通用形式了。
- def fn(arg1, arg2, ...):
对于这种函数,我们在调用的过程中有一个非常重要的注意事项,调用函数的实参必须和形参个数一致。对于这种常用方式,相信很多人都已经耳熟能详了。
- def fn(arg1, arg2 = 2, ...):
对于形参有默认值的函数,我们在调用的过程中可以让调用函数的实参个数少于形参个数。不过这里要注意一些问题,对于有默认值的函数,带有默认值的形参我们一般都是放在最后定义,这样做的目的是为了保证我们在省略实参的时候可以使用默认值。
- def fn(*args):
有些时候,我们可能并不清楚我们在调用函数的时候会传入多少实参,这时我们就要使用一个非固定形参的方式来定义了。在Python中,通过一个*加上形参名的方式来表示这个函数的实参个数不固定。需要我们注意的是,不管在调用时传入多少个实参,都被存放在以形参为标识符的元组中。
- def fn(**args):
形参名前加两个*表示参数在函数内部将被存放在以形参为标识符的字典中,这时调用函数的方法则需要采用arg1=value1, arg2=value2的形式进行实参传递。