python 函数-04-参数收集-带1个或2个星号

一个函数,至多可以带一个一星参数(收集位置参数),加上一个二星参数(收集关键字参数)。

01 一个星号参数

  1. 入参为不定参数(参数个数不确定),此时在定义参数时,在参数名称前加上*号(表示一个元组)
  2. 带星号的参数可位于参数列表的任意位置,python要求函数只能有一个带星号的参数
def my_sum(*t):
    print(t, type(t))
    sum = 0
    for s in t:
        sum += s
    return sum

# 事实上该函数接受了不定个数的输入参数
my_sum(1, 2, 3, 4, 2233)
  1. 如果带星号的参数后面还有其它参数,则他们必须以关键字的形式传参,否则Python无法分辨实参到底传给谁
def pow_sum(*t, p):
    # 带星号的输入参数被当作元组处理
    print(t, type(t))
    sum = 0
    for s in t:
        sum += s ** p
    return sum

# 最后一个参数p,需要指定关键字传递
pow_sum(1, 2, 3, 4, 2233, p=2)
  1. 如果带星号的参数前面有其它参数,则不必根据关键字传递实参
def sum_test(x1, x2, *y):
    sum = 0
    for i in y:
        sum = sum + i
    return sum + x1 + x2

a = sum_test(1, 2, 3)
b = sum_test(1, 2, 3, 22, 44, 55)
c = sum_test(1, 2, 3, 4, 5, 6)
print(a, b, c)

02 两个星号参数

  1. 二星参数在函数内部以【字典】的形式存在。 – 【Python独有】
  2. 二星参数【必须在参数列表的末尾】,它后面不能再有别的关键字参数和位置参数
def bar(param1, **param2):
    print(param1)
    print(param2)

bar(1, a=2, b=3)  

# 结果: 
1  
{'a': 2, 'b': 3}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值