zoukankan      html  css  js  c++  java
  • python 中的 args,*args,**kwargs的区别

    一、*args的使用方法


    *args 用来将参数打包成tuple给函数体调用

    例子一:
    def function(*args):
          print(args, type(args))
    function(2)
    ---->
    (2,) <class 'tuple'>

    扩展实例
    def func(*args):
          print(args,type(args))
    func(1,2,3,4,5)
    ---->
    (1, 2, 3, 4, 5) <class 'tuple'>


    例子二:
    def function(x, y, *args):
          print(x, y, args)

    function(1, 2, 3, 4, 5,6,7,8)
    ---->
    (3, 4, 5, 6, 7, 8) <class 'tuple'>

    二、**kwargs的使用方法


    **kwargs 打包关键字参数成dict给函数体调用

    例子一:
    def func(**kwargs):
          print(kwargs,type(kwargs))
    func(a=2)
    ---->
    {'a': 2} <class 'dict'>

    例子二:

    def function(**kwargs):
          print(kwargs)
    function(a=1, b=2, c=3)
    ---->
    {'a': 1, 'b': 2, 'c': 3} <class 'dict'>


    三、总结:参数arg、*args、**kwargs三个参数的位置必须是一定的。必须是(arg,*args,**kwargs)这个顺序。


    def function(arg,*args,**kwargs):
          print(arg,args,kwargs)
    function(6,7,8,9,a=1, b=2, c=3)
    ---->
    6 (7, 8, 9) {'a': 1, 'b': 2, 'c': 3}

  • 相关阅读:
    SQL语句的优化(转载)
    使用经纬度得到位置Geocorder
    android自带下拉刷新SwipeRefreshLayout
    线程池ScheduledThreadPool
    线程池SingleThreadPool
    线程池CachedThreadPool
    线程池FixedThreadPool
    线程池ThreadPoolExecutor
    Bitmap缩放(三)
    Bitmap缩放(二)
  • 原文地址:https://www.cnblogs.com/kaishirenshi/p/8610662.html
Copyright © 2011-2022 走看看