python中的*arg和**kwargs
arg对应多出来的位置参数,把它们解析成tuple;kwargs把关键字参数解析成dict.
def example(pram):
print(pram) def example2(param, *args, **kwargs):
print(param)
if args:
print(args)
if kwargs:
print(kwargs) #一个不设定参数个数的加法函数
def sum(*args):
sum = 0
for a in args:
sum += a
return sum #控制关键字参数的个数,可以用"*"作为分割参数
def person(param, *, keyword1, keyword2):
print(param, keyword1, keyword2) ############################################3
#反向思维用法
def another_sum(a, b, c):
print(a + b + c) if __name__ == "__main__":
example("hello world!") #hello world!
#该情况下会报错
# example("hello world!", "honey") #*args, **kwargs为空也不行影响函数运行
example2("hello world!") #hello world! #pram是位置参数;*arg会把多的位置参数转成元组;**kwargs必须要带上关键字,比如"word1=",关键字参数会被转成字典.
example2("hello world!", "honey", "hi", word1="happy new year", word2="red packet") #hello world!
#('honey', 'hi')
#{'word1': 'happy new year', 'word2': 'red packet'} # 一个不设定参数个数的加法函数
print(sum(1, 2, 3, 4)) # # 控制关键字参数的个数
person("name:", keyword1="qin", keyword2="fen") #name: qin fen ############################################3
# 反向思维
arg1 = [1, 2, 3]
#把lis进行了拆分
another_sum(*arg1) # #此处的键要和形参一致,必须为'a','b','c'
kwargs1 = {"a":1, "b":2, "c":3}
another_sum(**kwargs1) #
文章参考:https://www.jianshu.com/p/e0d4705e8293
python中的*arg和**kwargs的更多相关文章
- Python中的*args和**kwargs
原文地址:http://www.linuxidc.com/Linux/2011-10/45083.htm 先来看个例子: ,2,3,4) foo(a=1,b=2,c=3) foo(1,2,3,4, a ...
- Python中的*args和**kwargs的理解与用法
一.简述 1.*args和**kwargs 这两个是python中方法的可变参数. 2.*args表示任何多个无名参数,它是一个tuple: 3.**kwargs表示关键字参数,它是一个dict.并且 ...
- Python中的args和kwargs
有时,你会看到python中定义函数的时候带有两个奇怪的参数:*args.**kwargs.如果你曾经想知道它们是干什么的,或者想知道你的IDE为什么在main()函数中定义它们,那么本文可以帮助到你 ...
- 【Python—参数】*arg与**kwargs参数的用法
在python中,这两个是python中的可变参数,*arg表示任意多个无名参数,类型为tuple;**kwargs表示关键字参数,为dict. # *允许你传入0个或任意个参数,这些可变参数在函数调 ...
- python 中的 *args 和 **kwargs
在阅读Python代码时,经常会看到如下函数的定义: def fun(*args, **kwargs): 很多同学可能会对此感到困惑,这个 * args和 **kwargs是什么东西.为啥会在源码中应 ...
- 理解 Python 中的 *args 和 **kwargs
Python是支持可变参数的,最简单的方法莫过于使用默认参数,例如: def test_defargs(one, two = 2): print 'Required argument: ', one ...
- Python中的 *args 和 **kwargs
基本概念 Python支持可变参数,最简单的方法莫过于使用默认参数. def test_defargs(one, two=2): # 参数one没有默认值,two的默认值为2 print('Requi ...
- Python中的*arg和**kwarg
一个简单的函数 首先我们可以定一个简单的函数, 函数内部只考虑required_arg这一个形参(位置参数) def exmaple(required_arg): print required_arg ...
- python中的*args与**kwargs的含义与作用
在定义函数的时候参数通常会使用 *args与**kwgs,形参与实参的区别不再赘述,我们来解释一下这两个的作用. *args是非关键字参数,用于元组,**kwargs是关键字参数 (字典)例如下面的代 ...
随机推荐
- SafetyNet Attestation API
https://developer.android.google.cn/training/safetynet/attestation#verify-compat-check SafetyNet At ...
- mui---计算缓存大小及清除缓存
在做APP项目的时候,考虑到APP的的缓存文件太大,会考虑在APP内部设置清除缓存的功能. 具体方法: http://www.dcloud.io/docs/api/zh_cn/cache.html h ...
- java基本数据结构和算法
private class Node { 6 private Object data; //数据 7 private Node next = null; //指向下个结点的引用 8 9 public ...
- oracle相关的知识
01.表空间的创建与删除 Spool 目录 (把sql语句都记录在txt文件中)spool e:\xxx.txtSpool off 结束 SQL> --清除屏幕信息SQL> cle ...
- 基于jdk1.8的HashMap源码学习笔记
作为一种最为常用的容器,同时也是效率比较高的容器,HashMap当之无愧.所以自己这次jdk源码学习,就从HashMap开始吧,当然水平有限,有不正确的地方,欢迎指正,促进共同学习进步,就是喜欢程序员 ...
- Linux系统下升级Python版本步骤(suse系统)
Linux系统下升级Python版本步骤(suse系统) http://blog.csdn.net/lifengling1234/article/details/53536493
- 所生成项目的处理器架构“MSIL”与引用“***”的处理器架构“x86”不匹配。这种不匹配可能会导致运行时失败。请考虑通过配置管理器...
警告:所生成项目的处理器架构“MSIL”与引用“***”的处理器架构“x86”不匹配.这种不匹配可能会导致运行时失败.请考虑通过配置管理器更改您的项目的目标处理器架构,以使您的项目与引用间的处理器架构 ...
- Steeltoe之Circuit Breaker篇
在分布式系统中,服务发生异常是很正常的现象.为了处理这类"例外",可以采取不同的应对策略,断路器模式即是其中一种方法.这个模式的主要特点是其可以阻断失败的级联影响,不会因为一个服务 ...
- grafana----alert
Alert只有grafana V4.0以上. Introduction(介绍) Grafana中的alert允许在dashboard panels你附加一些规则.当你保存仪表板Grafana将提取的报 ...
- 恢复制作了系统盘的U盘
制作了系统盘的U盘通常容量会变得很小(比如用win32制作的系统盘) 此时在系统安装完成之后就要把U盘恢复,否则就无法正常使用了 步骤: 1.win+r打开程序搜索框,输入cmd打开dos窗口 2.在 ...