马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
一、默认参数
定义函数的时候,还可以有默认参数。
例如Python自带的 int() 函数,其实就有两个参数,我们既可以传一个参数,又可以传两个参数:- >>> int('123')
- 123
- >>> int('123', 8)
- 83
复制代码 int()函数的第二个参数是转换进制,如果不传,默认是十进制 (base=10),如果传了,就用传入的参数。
可见,函数的默认参数的作用是简化调用,你只需要把必须的参数传进去。但是在需要的时候,又可以传入额外的参数来覆盖默认参数值。
我们来定义一个计算 x 的N次方的函数:- def power(x, n):
- s = 1
- while n > 0:
- n = n - 1
- s = s * x
- return s
复制代码 假设计算平方的次数最多,我们就可以把 n 的默认值设定为 2:- def power(x, n=2):
- s = 1
- while n > 0:
- n = n - 1
- s = s * x
- return s
复制代码 这样一来,计算平方就不需要传入两个参数了:由于函数的参数按从左到右的顺序匹配,所以默认参数只能定义在必需参数的后面:- # OK:
- def fn1(a, b=1, c=2):
- pass
- # Error:
- def fn2(a=1, b):
- pass
复制代码 二、可变参数
如果想让一个函数能接受任意个参数,我们就可以定义一个可变参数:- def fn(*args):
- print (args)
复制代码 可变参数的名字前面有个 * 号,我们可以传入0个、1个或多个参数给可变参数:- '''
- 学习中遇到问题没人解答?小编创建了一个Python学习交流群:711312441
- 寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
- '''
- >>> fn()
- ()
- >>> fn('a')
- ('a',)
- >>> fn('a', 'b')
- ('a', 'b')
- >>> fn('a', 'b', 'c')
- ('a', 'b', 'c')
复制代码 可变参数也不是很神秘,Python解释器会把传入的一组参数组装成一个tuple传递给可变参数,因此,在函数内部,直接把变量 args 看成一个 tuple 就好了。
定义可变参数的目的也是为了简化调用。假设我们要计算任意个数的平均值,就可以定义一个可变参数:- def average(*args):
- sum = 0.0
- if len(args) == 0:
- return sum
- for x in args:
- sum = sum + x
- return sum / len(args)
复制代码 这样,在调用的时候,可以这样写:- >>> average()
- 0
- >>> average(1, 2)
- 1.5
- >>> average(1, 2, 2, 3, 4)
- 2.4
复制代码 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |