Python函数中 *和**的使用-收集参数和其逆过程

* 和 ** 使用在函数中,可以时是函数可以接受任意多的参数,也就时收集参数的作用。

1. * 的使用

函数参数中使用一个星号的目的时收集多余的位置参数,如果没有多余的参数收集,带星号的参数就是 个空元组。

另外对于函数调用的地方使用星号,是参数收集的逆过程,使用时不是要收集参数,而是函数执行中进行参数分配

实例:


def printInfo(name, *others):
    print(name)
    # others is one Tuple
    print(others)

printInfo('devin')
print('*' * 20)
printInfo('devin', 25, 'male')
print('-' * 20)
info = ('devin', 25, 'male')
printInfo(*info)

输出结果:

devin
()
********************
devin
(25, 'male')
--------------------
devin
(25, 'male')

2. ** 的使用

函数参数中使用双星号(**)的目的处理关键字参数的收集操作,返回的时字典而不是元组

同样,在调用函数时使用 **来进行字典参数的传递,可以实现在函数体中进行参数的分配-参数收集的逆过程。

实例:

def printInfo(name, *param1, **param2):
    print(name)
    print(param1)
    print(param2)


printInfo('Devin', 25, 'male', role='freedom', hope='peace')
print('=' * 40)


def printInfo2(name, age):
    print(name)
    print(age)


info = {'name': 'devin', 'age': 'peace'}
printInfo2(**info)

输出结果:

Devin
(25, 'male')
{'role': 'freedom', 'hope': 'peace'}
========================================
devin
peace
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值