• 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))


    如果避免此类问题,一般情况下,是将
    改写成下面的形式
    '''


    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
    # #不带参数名的参数(位置参数)必须出现在带参数名的参数(关键字参数)之前,否则会出现一场报错
  • 相关阅读:
    document.readyState的使用
    Selenium操作滚动条
    seq2seq模型以及其tensorflow的简化代码实现
    MOXA的Nport5600初始密码
    预测功率和电流之间的关系
    KNN与SVM对比&SVM与逻辑回归的对比
    拉格朗日乘子法以及KKT条件
    复合熵、条件熵和信息增益
    softmax为什么使用指数函数?(最大熵模型的理解)
    极大似然、最小二乘和梯度下降
  • 原文地址:https://www.cnblogs.com/onemorepoint/p/13942113.html
Copyright © 2020-2023  润新知