函数的参数
python中定义函数时可以用必选参数、默认参数、可变参数、关键字参数和命名关键字参数,参数定义的顺序必须是:必选参数、默认参数、可变参数、命名关键字参数和关键字参数
1.必选参数
必选参数就是位置参数,调用函数时必须传入参数
def test(x, y): sum1 = x + y return sum1 print(test(1, 2))
2.默认参数
顾名思义默认参数就是函数有默认的参数可以不用传值给参数
eg:计算某个数的平方
def test(x, y=2): sum1 = x**y return sum1 print(test(3))
输出
9
默认参数为2,当然我们也可以传入两个参数test(3,3)则计算3的三次方
注意!!!
默认参数只能指向不可变对象
eg:向一个列表中添加一个元素
def text(s=[]): s.append('bbu') return s print(text()) print(text()) print(text())
输出
['bbu'] ['bbu', 'bbu'] ['bbu', 'bbu', 'bbu']
Python函数在定义的时候,默认参数L
的值就被计算出来了,即[],因为默认参数s也是一个变量,它指向对象[],每次调用该函数,如果改变了s的内容,则下次调用时,默认参数的内容就变了,不再是函数定义时的[]了,这时只需要将默认参数改为不可变对象就可以了(不可变对象有字符串,元组,数字None)
3.可变参数
可变参数就是传入的参数个数是可变的,可以是1个、2个到任意个,还可以是0个,
eg:计算n个数的乘积
方法1 传入一个列表或者元组
def test(numbers): b = 1 for a in numbers: b = b * a return b print(test([1,2,3]))
6
方法2 将函数的参数改为可变参数*args
def test(*args): b = 1 for a in args: b = b * a return b print(test(1,2,3))
6
a.如果事先有一个列表或者元组,需要调用可变参数则可以
def test(*args): b = 1 for a in args: b = b * a return b number = [1,2,3,4] print(test(number[0],number[1],number[2],number[3]))
b.也可以这样(最常用的方法)
def test(*args): b = 1 for a in args: b = b * a return b number = [1,2,3,4] print(test(*number))
4.关键字参数
关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict
5.命名关键字参数
喜欢开源,乐于分享,请多指教