函数参数自动解包

你使用*, **可以自动的对一个list,dict做函数参数,自动的解包

例子:

def draw_point(x, y):
    # do some magic

point_foo = (3, 4)
point_bar = {‘y‘: 3, ‘x‘: 2}

draw_point(*point_foo)
draw_point(**point_bar)

这是一个非常捷径的用法。

NOTE:

请看这两个程序的不同。。。

def cheeseshop(kind, *arguments, **keywords):
    print "-- Do you have any", kind, "?"
    print "-- I‘m sorry, we‘re all out of", kind
    for arg in arguments:
        print arg
    print "-" * 40
    keys = sorted(keywords.keys())
    for kw in keys:
        print kw, ":", keywords[kw]

cheeseshop("Limburger", "It‘s very runny, sir.",
           "It‘s really very, VERY runny, sir.",
           shopkeeper=‘Michael Palin‘,
           client="John Cleese",
           sketch="Cheese Shop Sketch")

Python不单可以自动解包,也可以自动的形成tuple,dict数据结构作为函数参数。。

时间: 2024-11-01 04:36:20

函数参数自动解包的相关文章

C语言中的system函数参数详解

http://blog.csdn.net/pipisorry/article/details/33024727 函数名: system 功   能: 发出一个DOS命令 用   法: int system(char *command); system函数已经被收录在标准c库中,可以直接调用 system()函数用于向操作系统传递控制台命令行,以WINDOWS系统为例,通过system()函数执行命令和在DOS窗口中执行命令的效果是一样的,所以只要在运行窗口中可以使用的命令都可以用SYSTEM()

PHP date函数参数详解

PHP date函数参数详解 作者: 字体:[增加 减小] 类型:转载 time()在PHP中是得到一个数字,这个数字表示从1970-01-01到现在共走了多少秒,很奇怪吧 不过这样方便计算, 要找出前一天的时间就是 time()-60*60*24; 要找出前一年的时间就是 time()*60*60*24*365 那么如何把这个数字换成日期格式呢,就要用到date函数了 $t=time();  echo date("Y-m-d H:i:s",$t); 第一个参数的格式分别表示: a -

CGBitmapContextCreate函数参数详解

CGBitmapContextCreate函数参数详解 函数原型: CGContextRef CGBitmapContextCreate ( void *data,   size_t width,   size_t height,   size_t bitsPerComponent,   size_t bytesPerRow,   CGColorSpaceRef colorspace,   CGBitmapInfo bitmapInfo ); 参数: data                  

ES6 字符串、数值与布尔值、函数参数的解构赋值

const str="hello world"; const [a,b,...oth]=str; 字符串分割为数组的三种方法: const str="hello world"; const [...str1]=str; const str2=[...str]; const str3=str.split(""); 提取字符串的属性和方法: const str="hello world"; const {length,split}

python2.7函数参数详解

函数参数的匹配原则 位置:从左至右进行匹配 一般情况下,是通过位置进行匹配,把参数值传递给函数头部的参数名称,匹配顺序为从左到右. 关键字参数:通过参数名进行匹配 调用者可以定义哪一个函数接收这个值,通过在调用的时候使用参数的变量名,使用name=value这种语法. 默认参数:为没有传入值的参数定义参数值 如果调用时传入的值过于少的话,函数能够为参数设定默认的参数值,使用name=value这种语法. 可变参数:接收任意多基于位置或关键字的参数 函数能够使用特定的参数,它们是已字符*开头,接收

Python学习笔记5:函数参数详解

一.函数的定义格式: def 函数名(参数列表): 函数体 def fun1(a, b, c): return a + b + c 二.位置传递:位置对应 print(fun1(3 ,2 ,1)) 输出: 6 三.关键字传递:位置参数要出现在关键字参数之前 print(fun1(3 ,c = 1, b = 2)) 输出: 6 四.参数默认值:可以给参数赋予默认值(default) def fun2(a, b, c = 100): return a + b + c print(fun2(1, 10

关于[email protected]连线生成的属性系统自动解包问题

关于连线拖出来的属性后面默认带叹号和为什么我们一开始不需要给它赋值问题 @IBOutlet weak var display: UILabel! 因为系统自动帮你初始化了,display是一个optional,并且在使用之前就赋了nil.对于optional后面一般不是问号吗?但是对于实际类型而言它们没有什么区别.它仍然是一个optional的值,其值在这里可能是一个UILabek类型.但是它们的用法完全是不一样的,这完全是编译器帮你把事做好了.但是我们把叹号改成问号,编译器就会报出一些错误提示

Python函数参数详解

  Python函数定义时参数灵活,使用不同参数的组合不仅可以简化调用者的代码,还可以处理复杂的参数.函数的参数除了有必选参数外,还可以使用默认参数,可变参数,关键字参数和命名关键字参数. 位置参数 定义一个计算x^2的函数,以及一个计算x^n的函数 def calc1(x): return x * x def calc2(x, n): s = 1 for i in range(n): s *= x return s 对于这两个函数,其参数都是位置参数,同时也是必选参数,调用函数时实参需和形参一

双击包裹物品自动解包设置方法_传奇版本技术

栏目: 在物品数据库(Stditem.db)中进行设置,找到需要解包的物品道具,将Shape字段设置为100.如下图所示 然后再服务端中找到UnbindList.txt(位于:D:\MirServer\Mir200\Envir\目录下),添加如下格式即可 100    金创药最后数据库里面的超级金创要的Shape字段数值为100 原文地址:https://www.cnblogs.com/tutublogs/p/8337144.html