python参数的可变参数与关键词参数
2021/10/15 20:14:34
本文主要是介绍python参数的可变参数与关键词参数,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
可变参数与关键词参数
def can_form_triangle(a, b, c): print(f'a = {a}, b = {b}, c = {c}') return a + b > c and b + c > a and a + c > b
1.在没有特殊处理的情况下,函数的参数都是位置参数,也就是意味着传入的参数必须对号入座,
传入的参数值1,2,3会依次赋值给a,b,c
2.可以使用*args
来接收任意数量的参数,但是*args
不能接收带参数名的参数,
调用函数传入参数不指定参数名按位置对号入座
print(can_form_triangle(1, 2, 3))
调用函数通过“参数名=参数值”的形式按顺序传入参数
print(can_form_triangle(a=1, b=2, c=3))
调用函数通过“参数名=参数值”的形式不按顺序传入参数
print(can_form_triangle(c=3, a=1, b=2))
def calc(*args): result = 0 for arg in args: result += arg return result
这样的calc函数只能接收不带参数名的传参,
如果参数中带有参数名,则会出现typeerror
例如不能接收这样的传参
print(calc(a=1,b=2,c=3))
如果避免此类问题,一般情况下,是将
改写成下面的形式
''' 学习中遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025 寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书! ''' def calc(*args: any, **kwargs: any) -> int: result = 0 for arg in args: result += arg for value in kwargs.values(): result += value return result print(calc()) # 0 print(calc(1, 2, 3)) # 6 print(calc(a=1, b=2, c=3)) # 6 print(calc(1, 2, c=3, d=4)) # 10
不带参数名的参数(位置参数)必须出现在带参数名的参数(关键字参数)之前,否则会出现一场报错
这篇关于python参数的可变参数与关键词参数的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-26Python基础编程
- 2024-11-25Python编程基础:变量与类型
- 2024-11-25Python编程基础与实践
- 2024-11-24Python编程基础详解
- 2024-11-21Python编程基础教程
- 2024-11-20Python编程基础与实践
- 2024-11-20Python编程基础与高级应用
- 2024-11-19Python 基础编程教程
- 2024-11-19Python基础入门教程
- 2024-11-17在FastAPI项目中添加一个生产级别的数据库——本地环境搭建指南