zoukankan      html  css  js  c++  java
  • 万能参数

    函数的传参:形参第三种参数:万能参数

    1.1 *args

    当给函数传入的参数数目不定时,之前的传参方式解决不了问题。这是就要用到万能参数,就是动态参数:*args

     

    def eat(*args):  # 将实参角度:定义一个函数时,* 所有的位置参数聚合到一个元组中。
      print(args)
      print(f'我请你吃:{args}')
    # eat('蒸羊羔','蒸熊掌','蒸鹿尾','烧花鸭','烧企鹅')

    这时候所有的位置参数都聚合到一个元组

     

    函数接收不定个数的数字实参,将最终的返回出去.

    def sum1(*args):
      # print(args) (100, 2, 67, 3)
      result = 0
      for i in args:
          result += i
      return result
    print(sum1(100,2,67,3))

     

    1.2 kwargs**

    def func(**kwargs):

    print(**kwaargs)

    func(name = "谭伟",age = "10",hobby = "唱跳")

    而这个函数在定义时:**kwargs将实参角度所有的关键字参数聚合成了一个空字典,给了kwargs

     

    1.3 *args, **kwargs

    这个是万能参数

    def func(*args,**kwargs):
      print(args,kwargs)
    func(1,2,4,'fjdksal',age=84,hobby='唱跳rap篮球')

    1.4*的魔性用法

    l1 = [1, 2, 3]
    l2 = ['太白', 'wusir', '景女神']
    # func(l1,l2)
    # func(*l1,*l2)         # 当函数的执行时:*iterable 代表打散。
    func(*[1, 2, 3],*(11,22),*'fdsakl') # 当函数的执行时:*iterable 代表打散。

    当是函数的执行时,这个时候*就起到了打散的作用

    # def func(*args,**kwargs):
    #     print(args)
    #     print(kwargs)
    # func(**{'name':"alex"},**{'age': 73,'hobby': '吹'})

    当函数的执行时:dict 代表打散**。

     

    函数外:处理剩余元素

    # a,b,*c = [1,2,3,4,5]
    # a,*c,b, = [1,2,3,4,5]
    # a,*c = range(5)
    # a,*c,b = (1,2,3,4,5,6)
    # print(a,c,b)

    这个就是相对应的元素取一一对应,然后*将剩下的元素进行整合

  • 相关阅读:
    Winform 异步更新listbox
    Object-C
    易学易懂
    C# login with cookie and fiddler2
    开源 侧滑 和 Tab滑动翻页 控件
    Mysql Java type mapping
    jQuery滑动导航菜单
    js判断是移动端还是pc端
    设为主页和加入收藏
    原生javascript效果:无缝滚动
  • 原文地址:https://www.cnblogs.com/dangpanfei/p/11048073.html
Copyright © 2011-2022 走看看