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

    可变长参数:指的是在调用函数时,传入的参数个数可以不固定

    调用函数时,传值的方式无非两种,一种是位置实参,另一种是关键字实参,因此形参也必须得有两种解决方法,以此来分别接收溢出的位置实参(*)与关键字实参(**)

    • 形参
      • 位置形参
      • 默认形参
    • 实参
      • 位置实参
      • 关键字实参

    一、可变长形参之* (牢记)

    接收多余位置实参, 以元祖的形式存储,然后把元组赋值给*后的参数。需要注意的是:*后的参数名约定俗成为args

    # 可变长参数之*       # 接收多余位置实参, 以元祖存储
    def func(a, b, *args):  # *abc会接收多余的位置实参,应该使用args作为变量名,args是约定俗称
        print(a, b)
        print(args)         # args就会接收多余的位置实参, 以元祖存储
    
    func(1, 2, 3, 4.0, "a")
    

    1 2
    (3, 4.0, 'a')

    二、可变长形参之** (牢记)

    接收多余的关键字实参,以字典形式存储,然后把字典赋值给**后的参数。需要注意的是:**后的参数名约定俗成为kwargs

    # 可变长参数之**      # 接收多余的关键字实参,以字典形式存储
    def func(name, pwd, **kwargs):
        print(name, pwd)
        print(kwargs)
    
    func("xucheng",123, xc=123, baba=456)
    

    xucheng 123
    {'xc': 123, 'baba': 456}

    三、可变长参数*和**联用 (牢记)

    def func(name, pwd, *args, **kwargs):
        print(name, pwd)
        print(args)		# 位置参数,元祖
        print(kwargs)	# 关键字参数,字典
    
    func("xucheng",123,4,5,6, woni="ahaha",haha="ad")
    

    xucheng 123
    (4, 5, 6)
    {'woni': 'ahaha', 'haha': 'ad'}

    四、可变长形式参数* (了解)

    def func(name, pwd, x, y, z):
        print(name, pwd)
        print(x, y, z)
    
    tup = (4, 2, 3)
    func('nick', 123658, *tup)  # *会把元祖打散成位置实参传给形参,解压缩
    

    nick 123658
    4 2 3

    五、可变长形式参数** (了解)

    def func(name, pwd, **kwargs):
        print(name, pwd)
        print(kwargs)
    
    dic = {'a': 1, 'b': 2}  # **dic  --> a=1 , b=2
    func('nick', 123658, **dic)  # **会把字典打散成关键字实参传给形参,解压缩
    

    nick 123658
    {'a': 1, 'b': 2}

  • 相关阅读:
    随机数模块(random)
    时间模块(time)
    collection模块 1
    collection模块
    re模块
    正则
    Bootstrap 关于下拉菜单的使用
    Bootstrap 关于Glyphicons 字体图标的使用
    oracle拼音排序
    ajax缓存问题
  • 原文地址:https://www.cnblogs.com/XuChengNotes/p/11329279.html
Copyright © 2011-2022 走看看