ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python参数的可变参数与关键词参数

2021-10-15 20:01:58  阅读:145  来源: 互联网

标签:args form python 关键词 参数 result print calc


可变参数与关键词参数

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

不带参数名的参数(位置参数)必须出现在带参数名的参数(关键字参数)之前,否则会出现一场报错

标签:args,form,python,关键词,参数,result,print,calc
来源: https://blog.csdn.net/qdPython/article/details/120789810

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有