点击跳转 《Python入门系列目录》
文章目录
1. 默认参数2. 任意数量的位置可变参数3. 任意数量的关键字可变参数4. 调用函数5. 函数返回值
参数可以理解为“随机应变的容器”,不需要声明参数类型,所以编程时最好主动检查所传参数类型的正确性参数的分类
位置参数关键字参数默认参数可变参数
1. 默认参数
def 函数名(…, 参数名=默认值):注意:在定义带有默认参数的函数时,默认参数只能出现在所有参数的最右端,并且任何一个默认参数的右侧都不能再定义非默认参数
def interest(money
, day
=1, interest_rate
=0.05):
income
= 0
income
= money
* interest_rate
* day
/ 365
print(income
)
interest
(5000)
interest
(10000)
2. 任意数量的位置可变参数
在定义函数时无法得知参数个数的情况下,可以在Python中使用*args和**kwargs定义可变参数只要在变量前面加*即可,并不意味着必须要定义名为args或kwargs可变参数之前可以定义0到任意多个参数可变参数永远放在参数的最后面在传递参数时,可以在原有的参数后面添加0个或多个参数,这些参数将会被放在元组内并传入函数
def exp(x
, y
, *args
):
print('x:', x
)
print('y:', y
)
print('args:', args
)
exp
(1, 5, 66, 55, 'abc')
'''
输出
x: 1
y: 5
args: (66, 55, 'abc')
'''
3. 任意数量的关键字可变参数
参数传递时,这些参数会被放在字典内并传入函数中带两个星号前缀的参数必须在所有带默认值的参数之后
def exp(x
, y
, *args
, **kwargs
):
print('x:', x
)
print('y:', y
)
print('args:', args
)
print('kwargs:', kwargs
)
exp
(1, 2, 2, 4, 6, a
='c', b
=1)
'''
输出
x: 1
y: 2
args: (2, 4, 6)
kwargs: {'a': 'c', 'b': 1}
'''
4. 调用函数
位置参数调用
严格函数定义时的位置传入,顺序不可以调换,否则会影响输出结果或者直接报错
关键字参数调用
可以不严格按照位置关键字参数可以和位置参数混用,但必须在位置参数后面
可变参数调用
*args可变参数列表直接将元组或者列表转换为参数
arg
= [0, 10, 2]
print(range(*arg
))
**kwargs关键字参数列表直接将字典转换为关键字参数
5. 函数返回值
return函数返回的运行结果可以保存为一个对象供其他函数调用返回值的数据类型没有限制,个数可以是一个或一组