`
Shelly.Kuang
  • 浏览: 158068 次
  • 性别: Icon_minigender_2
  • 来自: 广州
社区版块
存档分类
最新评论

Python - 函数中**参数的用法

 
阅读更多

 

Python tips: 什么是*args和**kwargs?

先来看个例子:

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

if __name__ == '__main__':
    foo(1,2,3,4)
    foo(a=1,b=2,c=3)
    foo(1,2,3,4, a=1,b=2,c=3)
    foo('a', 1, None, a=1, b='2', c=3)
输出结果如下:

args =  (1, 2, 3, 4)
kwargs =  {}
---------------------------------------
args =  ()
kwargs =  {'a': 1, 'c': 3, 'b': 2}
---------------------------------------
args =  (1, 2, 3, 4)
kwargs =  {'a': 1, 'c': 3, 'b': 2}
---------------------------------------
args =  ('a', 1, None)
kwargs =  {'a': 1, 'c': 3, 'b': '2'}
---------------------------------------

可以看到,这两个是python中的可变参数。*args表示任何多个无名参数,它是一个tuple;**kwargs表示关键字参数,它是一个 dict。并且同时使用*args和**kwargs时,必须*args参数列要在**kwargs前,像foo(a=1, b='2', c=3, a', 1, None, )这样调用的话,会提示语法错误“SyntaxError: non-keyword arg after keyword arg”。

 

def build(applied_rule_uid=None, movement_relative_url_list=None,delivery_relative_url_list=None, movement_list=None, **kw):
    print kw

tag = 'abc'
explanation_uid = 123    
build(activate_kw=dict(tag=tag), explanation_uid=explanation_uid)

#输出结果
{'explanation_uid': 123, 'activate_kw': {'tag': 'abc'}}
 

 

 

分享到:
评论

相关推荐

    python-str函数用法.docx

    python str函数用法 Python是一种高级编程语言,它提供了许多内置函数,其中一个非常有用的函数是str()函数。str()函数是Python中的一个内置函数,它用于将其他数据类型转换为字符串类型。在本文中,我们将深入探讨...

    python-参数组合.docx

    在Python中,参数组合是一种非常重要的概念,它可以帮助我们更好地理解Python的函数和方法。 Python中的参数组合主要包括位置参数、关键字参数、默认参数和可变参数。下面我们将分别介绍这些参数组合的用法和特点。 ...

    python中uniform函数-Pythonuniform()函数使用方法入门教程基础教程.pdf

    python中uniform函数_Pythonuniform()函数使⽤⽅法⼊门 教程基础教程 Python uniform() 函数 描述 uniform() ⽅法将随机⽣成下⼀个实数,它在 [x, y) 范围内。 语法 以下是 uniform() ⽅法的语法: import random ...

    python函数参数*args**kwargs用法实例

    # 当函数的参数不确定时,可以使用*args和**kwargs。*args没有key值,**kwargs有key值 def fun_var_args(farg, *args): print ‘args:’, farg for value in args: print ‘another arg:’,value # *args可以当作...

    python中factor函数-Python基础教程.pdf

    python中factor函数_Python基础教程 6.4.5 参数收集的逆过程 假设有如下函数: def add(x,y): return x+y ⽐如说有个包含由两个相加的数字组成的元组: params = (1,2) 使⽤*运算符对参数进⾏"分配",不过是在调⽤⽽...

    python-3.8.0b2-amd64.exe

    本文详细介绍 Python 3.8 中的新功能,以及和与 3.7 相比的一些不同点。 新功能 编译的字节码文件的并行文件系统缓存新的 PYTHONPYCACHEPREFIX设置(也可用 )将隐式字节码缓存配置为使用单独的并行文件系统树,而...

    python-sort的用法.docx

    python sort的用法 Python是一种高级编程语言,它提供了许多内置函数和方法,其中sort()方法是其中之一。sort()方法是Python中最常用的方法之一,它可以对列表、元组和字典等数据类型进行排序。在本文中,我们将深入...

    Python-3.8.0a3.tgz

    本文详细介绍 Python 3.8 中的新功能,以及和与 3.7 相比的一些不同点。 新功能 编译的字节码文件的并行文件系统缓存新的 PYTHONPYCACHEPREFIX设置(也可用 )将隐式字节码缓存配置为使用单独的并行文件系统树,而...

    Python-3.8.0b2.tgz

    本文详细介绍 Python 3.8 中的新功能,以及和与 3.7 相比的一些不同点。 新功能 编译的字节码文件的并行文件系统缓存新的 PYTHONPYCACHEPREFIX设置(也可用 )将隐式字节码缓存配置为使用单独的并行文件系统树,而...

    python-3.8.0a4.exe

    本文详细介绍 Python 3.8 中的新功能,以及和与 3.7 相比的一些不同点。 新功能 编译的字节码文件的并行文件系统缓存新的 PYTHONPYCACHEPREFIX设置(也可用 )将隐式字节码缓存配置为使用单独的并行文件系统树,而...

    python中cos函数怎么用-Pythoncos()函数使用方法入门教程基础教程.pdf

    python中cos函数怎么⽤_Pythoncos()函数使⽤⽅法⼊门教 程基础教程 Python cos() 函数 描述 cos() 返回x的弧度的余弦值。 语法 以下是 cos() ⽅法的语法: import math math.cos(x) 注意:cos()是不能直接访问的,...

    python-参数估计.docx

    在Python中,我们可以使用各种库和函数来进行参数估计。 我们需要了解一些基本概念。总体是指我们想要研究的整个群体,而样本是从总体中选取的一部分数据。总体参数是指我们想要估计的总体特征,例如平均值、标准差...

    Python星号*与**用法分析

    本文实例分析了Python星号*与**用法。分享给大家供大家参考,具体如下: 1. 加了星号(*)的变量名会存放所有未命名的变量参数,不能存放dict,否则报错。 如: def multiple(arg, *args): print arg: , arg #...

    详解Python self 参数

    我们在使用 Python 中的 方法 method 时,经常会看到 参数中带有 self,但是我们也没对这个参数进行赋值,那么这个参数到底是啥意思呢? 2、知识点 2.1 成员函数(m) 和 普通方法(f) Python 中的 “类方法” 必须有一...

    Python 函数的参数-在函数内部使用方法修改可变参数会影响外部实参

    Python解释器易于扩展,可以使用C语言或C++(或者其他可以通过C调用的语言)扩展新的功能和数据类型。Python也可用于可定制化软件中的扩展程序语言。Python丰富的标准库,提供了适用于各个主要系统平台的源码或机器...

    Python函数中*args和**kwargs来传递变长参数的用法

    主要介绍了Python编程中使用*args和**kwargs来传递可变参数的用法,文中举了变长参数的例子,需要的朋友可以参考下

    【Python--抽象类和抽象方法】--求三角形、矩形、圆的面积和周长的编程题(csdn)————程序.pdf

    【Python--抽象类和抽象方法】--求三角形、矩形、圆的面积和周长的编程题(csdn)————程序

    基于Python的接口自动化框架+源代码+文档说明

    进行**接口用例编写,接口关联,接口断言**,还有很重要的一点,实现了类似**jmeter函数助手**的功能,譬如生成UUID,随机定长字符串,格式化日期,正则表达式等,只需要你在EXCCEL中使用特殊的写法就能够使用这些函数啦~~...

    第5章-PythonPytho程序设计基础教程-函数与模块.pptx

    1 掌握函数的定义和调用方法2 理解函数中参数的作用3 理解变量的作用范围4 了解匿名函数lambda的基本用法 5 理解模块与包的概念及用法6 掌握Python内置模块的基本使用方法 3 第5章-PythonPytho程序设计基础教程-...

Global site tag (gtag.js) - Google Analytics