Python学习笔记01——“*“的相关用法

一、*的独立使用 

def test(a,b,*,x,y):
    print(a,b,x,y)
test(1,2,x=3,y=4)
#1 2 3 4

* 后的参数在调用时必须以key=value的形式进行传递,* 前的参数在调用时的可使用key=value的形式进行传递,也可不用key=value的形式进行传递。

def test(a,b,*,x,y):
    print(a,b,x,y)
test(x=3,a=1,b=2,y=4)
#1 2 3 4

 如果参数全用key=value的形式进行传递,则可以打乱传入顺序。

二、*后面跟字母 

def add(*args):
    print(args)   
    print(type(args))
    sum = 0
    for i in range(len(args)):
        sum += args[i]
    print(sum)
add(1,2,3)
# (1, 2, 3)  <class 'tuple'>  6
add()
# ()  <class 'tuple'>  0

 *后面跟字母(默认用*args表示),表示这是一个tuple参数,tuple中的元素个数不做限制。tuple中的元素类型尽量保持一致。

 三、**后面跟字母

 **后面跟字母(默认用**kwargs表示),表示这是一个dict参数,dict中的元素个数不做限制,需要使用key=value的形式进行传入参数。

 

def test_kw(**kwargs):
    print(kwargs) 
    print(type(kwargs))
    for k,v in kwargs.items():
        print(k,':',v)
test_kw(a=1,b=2,c=3,d=4)
# {'a': 1, 'b': 2, 'c': 3, 'd': 4}  
# <class 'dict'>  
# a:1  b:2  c:3  d:4
test_kw(a=1,b=2,c=3,d=4,x=999)
# {'a':1, 'b':2, 'c':3, 'd':4, 'x':999}
# <class 'dict'>
# a:1  b:2  c:3  d:4  x:999
test_kw()
# {}  <class 'dict'>

 参考/转载:

https://www.pynote.net/archives/368
https://www.pynote.net/archives/534

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值