zoukankan      html  css  js  c++  java
  • 可变长参数

    可变长参数

    一、可变长形参之*

    形参中的*会将溢出的位置实参全部接收,然后存储元组的形式,然后把元组赋值给*后的参数。需要注意的是:*后的参数名约定俗成为args。

    def num (x,y,*args):
        print(args)
        return 1
    num(1,2,3,4,5)
    ----------------------------------------------------------
    (3, 4, 5)  *args就为(3,4,5),1,2分别传给了x,y
    

    二、可变长实参之*

    实参中的*,*会将*后参数的值循环取出,打散成位置实参。以后但凡碰到实参中带*的,它就是位置实参,应该马上打散成位置实参去看。

    def func(x, y, z, *args):
        print(x, y, z, args)
    func(1, *(1, 2), 3, 4)
    ----------------------------------------------------------
    1 1 2 (3, 4)
    

    三、可变长形参之**

    形参中的**会将溢出的关键字实参全部接收,然后存储字典的形式,然后把字典赋值给**后的参数。需要注意的是:**后的参数名约定俗成为kwargs。

    def func(**kwargw):
        print(kwargw)
    
    
    func(a=5)
    ----------------------------------------------------------
    {'a': 5}
    

    四、可变长实参之**

    实参中的**,**会将**后参数的值循环取出,打散成关键字实参。以后但凡碰到实参中带**的,它就是关键字实参,应该马上打散成关键字实参去看

    def num (x,y,**kwargs):
        print(kwargs)
        return 1
    num(1,2,j=3,n =4,q =5)
    ------------------------------------------------------------
    (3, 4, 5)
    {'j': 3, 'n': 4, 'q': 5}
    

    五、*args和**kwargs合用

    def num (x,y,f = 0,*args,**kwargs):
        print(f)
        print(args)
        print(kwargs)
        return 1
    num(1,2,6,7,8,j=3,n =4,q =5)
    ------------------------------------------------------------
    (7, 8)
    {'j': 3, 'n': 4, 'q': 5}
    
  • 相关阅读:
    ios资源
    学习swift开源项目
    学习di'z地址
    IOS基础库
    IT自学论坛
    HVTableView 分享组
    IOS中的动画菜单
    iOS 通讯录操作
    ios中autolayout
    ios 程序学习
  • 原文地址:https://www.cnblogs.com/yanjiayi098-001/p/11329099.html
Copyright © 2011-2022 走看看