*及**在python语言参数传递中的特性

  1. 函数参数*arg

        定义函数中,参数*arg接受任意多个非关键字(non-keyword)参数,在函数中将其转化为元组形式,如(1,2,3,4)

           *args 没有key值,

        例:

        def fun1(*args):  # 接收多个参数,无key键
            print(args)

        fun1(11, "abc")

       运行结果:

       (11, 'abc')

   2.函数参数**kwarg

        定义函数参数时,**arg参数接受任意多个关键字(keyword)参数,在函数中将其转化为{key:value, key:value }格式,  如:{a:1, b’:2}

    def fun2(parm, **kwargs):  # 接收一个参数,和多个key-value参数
        print(parm)
        print(kwargs)

    fun2(22, k1=22, k2="abc")

    运行结果:

    22

    {'k1': 22, 'k2': 'abc'}

   3.变量前缀*

       一个列表、元组或字典变量前加*会将列表拆分成一个一个的独立元素

       *号解压可迭代对象相反zip()压缩可迭代对象

       带*号变量严格称为参数,不能赋值给其他变量的但可以作为参数传递给*arg

       实例一:

           def fun4(*args):  # 接收多个参数,无key键
               print(args)

           li = [11, 22, 33, 44]
           fun4(li)  # 传入列表
           fun4(*li)   # 传入元素 传入的参数为拆分列表后的元素

           运行结果:

           ([11, 22, 33, 44],)

           (11, 22, 33, 44)

           实例二:

           *拆分不同类型的数据

           import numpy as np
           list_num = [1, 2, 3, 4, 5]
           tuple_num = (1, 2, 3, 4, 5)
           dict_kw = {'1': "val1", '2': 'val2', '3': 'val3'}
           np_range = np.arange(1,5)
           print(*list_num)  # 拆分的元组
           print(*tuple_num)  # 拆分的元组
           print(*dict_kw)  # 拆分的字典
           print(*np_range)  # 拆分的np_range

           运行结果:

           1 2 3 4 5

           1 2 3 4 5

           1 2 3

           1 2 3 4

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值