美文网首页
Python中的*和**用法

Python中的*和**用法

作者: 小二哥很二 | 来源:发表于2021-10-02 16:49 被阅读0次

在python中,我们常接触的是定义函数时候的形参概念,但实际还有如下几种用法:

1、函数形参
- *args 返回的是一个tuple元组
- **kwargs返回的是一个dict字典
- **kwargs传参只能是A=“B”形式
- *args必须要在kwargs前面

def test(*args,**kwargs):
    print(f'args={args}')
    print(f'kwargs={kwargs}')

test(1,2,3,4,food="orange",age=12,sex="F")
dic = {'name':'lisa','job':'nurse'}

结果:
args=(1, 2, 3, 4)
kwargs={'food': 'orange', 'age': 12, 'sex': 'F'}

2、序列解包
序列解包只有*,没有**,相当于把带*的参数变成一个列表

a,*b = 1,2,3
print(a,b)    ==>1 [2, 3]

3、实参分解
即将参数拆分成单独的个体

def test(a,b,c):
    print(a)
    print(b)
    print(c)

data1 = ('hello','python','java')
test(*data1)   # 相当于分别传入了3个参数
结果:
a= hello
b= python
c= java

# 此时字典data2的key值必须和形参名称相等,顺序可以不一样
data2 = {'b':'lisa','c':12,'a':'F'}
test(**data2)
结果:
a= F
b= lisa
c= 12

4、最后一个是算数运算:乘法和次幂,不做介绍

相关文章

网友评论

      本文标题:Python中的*和**用法

      本文链接:https://www.haomeiwen.com/subject/dthmnltx.html