栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python之*的用法

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python之*的用法

  • 1、乘法作用
  • 2、收集多余值
  • 3、在函数中的作用(重点)
    • 3.1 在调用函数时使用
      • 3.1.0 如果按正常调用函数,则:
      • 3.1.1 如果使用一个*帮助传参,则按顺序赋值:
      • 3.1.2 如果使用两个*帮助传参,则按字典key值赋值:
    • 3.2 在定义函数时使用
      • 3.2.1 使用一个*定义虚参
      • 3.2.2 使用两个*定义虚参
  • 4、总结

参考: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)
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1001900.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号