zoukankan      html  css  js  c++  java
  • python值*args和**kwargs的总结思考

    python 中 *args 以及 * *kwargs的总结

    *arg

    • *args是当有多个参数时,且每次使用函数时参数的个数是不确定的,* args可以将这些参数打包成一个元组的形式

      #示例一
      def fun(*args):
          a = args
          print(a,type(a))
      fun(1,2,3)
      #输出的结果为
      (1, 2, 3) <class 'tuple'>
      #由此可见,其为元组形式
      
      #示例二
      #放入的参数本身是一个元组时
      def fun(*args):
          a = args
          print(a,type(a))
      fun((1,2,3))
      #其结果为
      ((1, 2, 3),) <class 'tuple'> #元组本身作为其中的一个参数
      
      #如果想将列表或或元组中的元素打散的话
      def fun(*args):
          a = args
          print(a,type(a))
      fun(*(1,2,3)) #可在元组钱加*,意为打散其中的元素,此情况适用于列表和元组
      
      

    **kwargs

    • **kwrags主要适用于指定参数,主要在我们不知道所指定的参数的个数时,其将指定放入参数生成一个字典,形成一一对应的关系

      #示例一
      def fun(**kwargs):
          a = kwargs
          print(a,type(a))
      fun(k1 = 1,k2 = 2) #注意:k1,k1在此处没有" "
      #输出结果为
      {'k1': 1, 'k2': 2} <class 'dict'>
      
      #示例二
      #另外的一种表示方法
      def fun(**kwargs):
          a = kwargs
          print(a,type(a))
      fun(**{'k1' : 1,"k2" : 2}) #直接以字典的形式输入
      
    • 补充,*args和kwargs中的args和kwargs其实就是形参其完全可以换成a,b.......等的其他的参数,但为了显示专业即用法的同意,在使用的情况下一般是写成args和kwargs**

  • 相关阅读:
    001:大盗阿福
    1183 编辑距离(51NOD)(dp)
    1134 最长递增子序列(容易TLE)
    1181 质数中的质数(质数筛法)(51NOD基础)
    列表行拖拽效果
    10个提升iOS开发效率的必用工具
    无需转化直接使用ESD映像文件安装系统简明教程
    Objective-C中变量采用@property的各个属性值的含义
    struts接收参数方式
    c# 执行js的方法
  • 原文地址:https://www.cnblogs.com/yangzilaing/p/13470775.html
Copyright © 2011-2022 走看看