Python中函数的参数类型非常丰富多彩。
Python的函数支持的参数类型包括:
(1)位置参数
(2)默认参数
(3) 可变参数
(4)关键字参数
(5)命名关键字参数
接下来,我们一一来学习一下:
(1)位置参数
位置参数,就是普通的参数。写在函数名后的小括号中,如下面例子:
def power(x):
return x * x
def power(x, n):
s = 1
while n > 0:
n = n - 1
s = s * x
return s
(2)默认参数
默认参数允许函数设置参数的默认值。例如:
def power(x, n = 2):......
其中参数n的默认值为2,调用函数时,可以省略这个参数,如:power(5),这里的5会赋值给x。
注意事项:
1.必选参数在前,默认参数在后。
Why?因为Python中函数的实际参数与形式参数的匹配顺序是从左至右的。
2.如何设置默认参数?
变化大的参数放前面,变化小的参数放后面当默认的参数。
降低函数调用的难度。
例如:在某校的学生信息管理系统中,可以把年龄和城市设为默认参数(因为都在一个城市,同年级的年龄也大都相同)。
def enroll(name, gender, age=6, city='Beijing'):
print('name:', name)
print('gender:', gender)
print('age:', age)
print('city:', city)
3.可以不按顺序提供部分默认参数。当不按顺序提供部分默认参数时,需要把参数名写上。
如:
enroll('Bob', 'M', 7)
enroll('Adam', 'M', city='Tianjin')
4.一个默认参数的大坑。
先定义一个函数,传入一个list,添加一个END再返回.
def add_end(L=[]):
L.append('END')
return L
试着用默认参数,连续执行add_end?
你会发现,似乎函数每次都“记住了”上次添加了’END’后的list。
<