一
*操作符在函数被调用的时候也能使用。意义基本是一样的。当调用一个函数的时候,一个用*标志的变量意思是变量里面的内容需要被提取出来然后当做位置参数被使用
def add(x, y):
return x + y
lst = [1,2]
add(lst[0], lst[1]) # 1
3
add(*lst) # 2
3
*args仅仅只是用在函数定义的时候用来表示位置参数应该存储在变量args里面。Python允许我们制定一些参数并且通过args捕获其他所有剩余的未被捕捉的位置参数
def one(*args):
print args # 1
one(1, 2, 3)
(1, 2, 3)
二
**代表着键值对的餐宿字典,和 * 所代表的意义相差无几,也很简单对不对
def foo(**kwargs):
print kwargs
foo()
{}
foo(x=1, y=2)
{'y': 2, 'x': 1}
当我们定义一个函数的时候,我们能够用**kwargs来表明,所有未被捕获的关键字参数都应该存储在kwargs的字典中
类似*
dct = {'x': 1, 'y': 2}
def bar(x, y):
return x + y
bar(**dct)
3
转:http://python.jobbole.com/81683/