アンパックは、シーケンスまたはマップ内の各要素を個別に抽出することです。シーケンス アンパックを使用する簡単な方法は、最初または最初のいくつかの要素とその後の要素を個別に抽出することです。たとえば、
first, Seconde, *rest = sequence
。シーケンス内に少なくとも 3 つの要素がある場合、上記のコードを実行した後、最初 == sequence[0]、2 番目 == sequence[0]、残り == sequence[2:]。
関数は不確実なパラメーターを受け取ります
関数のパラメーターが不確実な場合、*args と **kwargs を使用できます。*args にはキー値がありませんが、**kwargs にはキー値があります。
#!/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: <type 'str'> this is data1 *args: <type 'tuple'> (2, '3', 4.0) **kwargs: <type 'dict'> {'k2': 'value2', 'k1': 'value1'} ------------- tuple () dict {} tuple (1, 2, 3) dict {'a': 'A'}