

first, seconde, *rest = sequence
如果sequence里至少有三个元素,那么执行完上述代码后,first == sequence[0], second == sequence[0], rest == sequence[2:]。
函数接收不确定参数
当函数的参数不确定时,可以使用*args 和**kwargs,*args 没有key值,**kwargs有key值。
#!/usr/bin/python
# -*- coding:utf-8 -*-
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
'''
当函数的参数不确定时,可以使用*args 和**kwargs,*args 没有key值,**kwargs有key值。
'''
def fun_var_args_kwargs(data1, *args, **kwargs):
print 'data1:', type(data1), data1
print '*args:', type(args), args
print '**kwargs:', type(kwargs), kwargs
fun_var_args_kwargs('this is data1', 2, '3', 4.0, k1='value1', k2='value2')
print '-------------'
def print_args(*args, **kwargs):
print args.__class__.__name__, args, kwargs.__class__.__name__, kwargs
print_args()
print_args(1, 2, 3, a='A')打印结果:
data1:this is data1 *args: (2, '3', 4.0) **kwargs: {'k2': 'value2', 'k1': 'value1'} ------------- tuple () dict {} tuple (1, 2, 3) dict {'a': 'A'}
