python之*的用法

参考:Python中的*(星号)和**(双星号)完全详解

1、乘法作用

1*2=2

2、收集多余值

a,b,c=[1,2,3,4]
>> a=1,b=2,c=[3,4]

3、在函数中的作用(重点)

*在函数中主要集中在参数这个部分,既可以在定义函数的参数时用,也可以在调用函数的参数用。我们先讲解使用频率高的“在调用函数时用”

3.1 在调用函数时使用

调用函数时使用*,其作用是帮助分配参数

def func2(self,x,y):
    """
    接受两个参数并打印参数值
    
    接受*或**参数,自动分配给x和y
    example1:
        params=(1,2)
        func2(*params)
    output1:
        x:1
        y:2
    
    example2:
        params={'x':1,'y':2}
        func2(**params)
    output2:
        x:1
        y:2
    """
    print("x:",x)
    print("y:",y)

3.1.0 如果按正常调用函数,则:

func2(x=1,y=2)
#或者
func(1,2)

# 输出
>> x:1
>> y:2

3.1.1 如果使用一个*帮助传参,则按顺序赋值:

params=(1,2)

# *会按顺序帮助分配
func2(*params)

# 输出
>> x:1
>> y:2

3.1.2 如果使用两个*帮助传参,则按字典key值赋值:

params={'x':1,'y':2}

# **会按字典key直接复制
func2(**params)

# 输出
>> x:1
>> y:2

3.2 在定义函数时使用

定义函数时使用*,其作用是帮助收集参数

3.2.1 使用一个*定义虚参

def func0(self,*params):
        """
        接受参数(不带参数名传参),形成元组
        example:
            func0(1,2,3)
        output:
            params: (1, 2, 3)
        """
        print("params:",params)

3.2.2 使用两个*定义虚参

def func1(self,**params):
        """
        接受参数(带参数名),形成字典
        example:
            func1(x=1,y=2)
        output:
            params: {'x': 1, 'y': 2}
        """
        print("params:",params)

4、总结

使用场景*个数样例含义备注
调用参数(帮助分配参数)1个func(*(3,2,4))将元组实参按顺序赋值给虚参虚参按顺序接受实参的值
2个func(**{‘x’:1,‘y’:2})将字典实参按key赋值给虚参虚参x接受实参中x的值,虚参y接受实参中y的值
定义参数(帮助收集参数)1个func(*params)将接受的实参,组成元组给params实参必须不指定参数名:func(1,2,3)
2个func(**params)将接受的实参,组成字典给params实参必须指定参数名:func(x=1.y=2)
class IMG:
    def __init__(self):
        print("IMG实例化成功!")


    def func0(self,*params):
        """
        接受参数(不带参数名传参),形成元组
        example:
            func0(1,2,3)
        output:
            params: (1, 2, 3)
        """
        print("params:",params)


    def func1(self,**params):
        """
        接受参数(带参数名),形成字典
        example:
            func1(x=1,y=2)
        output:
            params: {'x': 1, 'y': 2}
        """
        print("params:",params)
    

    def func2(self,x,y):
        """
        接受*或**参数,自动分配给x和y
        example1:
            params=(1,2)
            func2(*params)
        output1:
            x:1
            y:2
        
        example2:
            params={'x':1,'y':2}
            func2(**params)
        output2:
            x:1
            y:2
        """
        print("x:",x)
        print("y:",y)
  • 6
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我是一个对称矩阵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值