简述:

*args:    可变长度元组参数
    **kwargs: 可变长度字典参数

--------------------------------------------------------------------------------------------------

详解:
【*args】:可变长度元组参数

例1:

def hello_args(para1, *args):
        print("para1 :", para1)
        for arg in args:
            print("args:", arg)
     
        print("type(args):", type(args))
     
    hello_args('hello', 'this', 'is', 'mc.meng')

输出:

para1 : hello
    args: this
    args: is
    args: mc.meng
    type(args): <class 'tuple'>

可以看到,函数hello_args把第一个参数传给了位置参数(positional arguments)para1,把剩下的参数作为一个元组传给了*args。
【**kwargs】:可变长度字典参数

例2:

def hello_kwargs(para1, **kwargs):
        print("para1 :", para1)
        for key, value in kwargs.items():
            print("{0} = {1}".format(key, value))
        print("type(kwargs):", type(kwargs))
     
     
    hello_kwargs("hello", key1=1, key2=2, key3=3)

输出:

para1 : hello
    key1 = 1
    key2 = 2
    key3 = 3
    type(kwargs): <class 'dict'>

或者还你可以把直接传入一个字典:

例3:

def hello_kwargs(para1, **kwargs):
        print("para1 :", para1)
        for key, value in kwargs.items():
            print("{0} = {1}".format(key, value))
        print("type(kwargs):", type(kwargs))
     
     
    thiskw = {"key1": 1, "key2": "two", "key3": 3}
    hello_kwargs("hello", **thiskw)

输出:

para1 : hello
    key1 = 1
    key2 = two
    key3 = 3
    type(kwargs): <class 'dict'>

但请注意:实参thiskw前面的**
---------------------
作者:menghaocheng
来源:CSDN
原文:https://blog.csdn.net/menghaocheng/article/details/79891263
版权声明:本文为博主原创文章,转载请附上博文链接!

python3-可变长度参数函数(*args 和 **kwargs)的更多相关文章

  1. 详解Python函数参数定义及传参(必备参数、关键字参数、默认可省略参数、可变不定长参数、*args、**kwargs)

    详解Python函数参数定义及传参(必备参数.关键字参数.默认可省略参数.可变不定长参数.*args.**kwargs) Python函数参数传参的种类   Python中函数参数定义及调用函数时传参 ...

  2. python中的魔法参数:*args和**kwargs

    python中的魔法参数:*args和**kwargs def foo(*args, **kwargs):print 'args = ', argsprint 'kwargs = ', kwargsp ...

  3. (转)python中的参数:*args和**kwargs

    def foo(*args, **kwargs):print 'args = ', argsprint 'kwargs = ', kwargsprint '---------------------- ...

  4. 非固定参数:*args和 **kwargs

    先看一个固定参数栗子: def func1(x, args): print(x, args) func1(1,22) ====================1 22 ================ ...

  5. Python可变参数*args和**kwargs

    本文我们将通过示例了解 Python函数的可变参数*args和 **kwargs的用法. 知识预备:Python 函数和 Python 函数参数 在Python编程中,我们定义一个函数来生成执行类似操 ...

  6. Python3函数中特殊形参的使用:*、*args、**kwargs

    Python3函数中特殊形参的使用:*.*args.**kwargs ==用法1:不定长参数== 当函数需要的参数数量不确定的时候,可以使用*args 和 **kwargs , 所有的位置参数保存在* ...

  7. (3)什么是函数(函数的定义、形参、实参、默认形参、可变长函数args|kwargs)

    什么是函数 函数是指将一组语句的集合通过一个名字(函数名)封装起来,想要执行这个函数,只需调用其函数名即可 1.减少重复代码 2.使程序变的可扩展 3.使程序变得易维护 定义函数的语法 形参 主要的作 ...

  8. python3基础(七)函数基础

    Function 函数是一段组织好的能够实现特定功能或者逻辑的代码块,函数代码在文件执行时读入内存并不执行,在调用函数时执行,简单来说是把一段代码封装给一个函数名(可以用变量的概念去理解,即把一段代码 ...

  9. Python基础-*args和**kwargs魔法变量

    在学习Python时,总会遇到*args和**kwargs这两个魔法变量,那么它们到底是什么? 首先,并不是必须写成*args和**kwargs.只有变量前面的*(星号)才是必须的,你也可以写成*va ...

随机推荐

  1. <html> ---- position

    position 固定的属性,是全局的.和DIV层次无关. <!DOCTYPE html> <html lang="en"> <head> &l ...

  2. EfRepository

    using System;using System.Collections.Generic;using System.Linq;using System.Linq.Expressions;using ...

  3. 大数据学习-2 认识Hadoop

    一.什么是Hadoop? Hadoop可以简单的理解为一个数据存储和数据分析分布式系统.随着互联网的普及产生的数据是非常的庞大的,那么我们怎么去处理这么大量的数据呢?传统的单一计算机肯定是完成不了的, ...

  4. Error: “app_name” is not translated in af

    in values/strings.xml   "app_name" is not translated in af, am, ar, be, bg, ca, cs, da, de ...

  5. border边框属性

    边框属性: 边框宽度(border-width):thin.medium.thick.长度值 边框颜色(border-color):颜色.transparent(透明) 边框样式(border-sty ...

  6. width属性

    宽度属性 width:长度值|百分比|auto 最大宽度:max-width 最小宽度:min-width 说明:设置块级元素和替换元素的内容宽度.

  7. FileUrl

    package com.rscode.credits.util; import java.io.BufferedReader; import java.io.File; import java.io. ...

  8. JS处理日期&字符串格式相互转换

    之前找过一些获取系统日期以及日期&字符串格式相互转换的方式,但总体自我感觉来说还是以下的方式会更适合一些. 如有更好的方式,望大家多多赐教和交流,谢谢! 2016年曾写过一次,不过只是发了一下 ...

  9. 记一次网络原因导致的mysql连接中断问题(druid)

    date: 2018-04-19 21:00 tag: java,mysql,exception,mat,调试,jvm 工具: gceasy.io, MAT 线上系统出现一个诡异的bug,通过heap ...

  10. JavaScript 之存取器属性

    首先介绍一下此篇随笔的主角: Object.getOwnPropertyDescriptor 和 Object.getOwnPropertyDescriptors 通过这两个api,可以访问除 nul ...