python函数参数带星号*

http://www.cnblogs.com/tips4python/archive/2011/05/30/function_with_stay.html

python函数参数带星号*

    
    
    
    
  def function_with_one_star( * t): print (t, type(t)) def function_with_two_stars( ** d)     print (d, type(d))

上面定义了两个函数,分别用了带一个星号和两个星号的参数,它们是什么意思,运行下面的代码:

    
    
    
    
function_with_one_star( 1 , 2 , 3 ) function_with_two_stars(a = 1 , b = 2 , c = 3 )

结果如下

    
    
    
    
( 1 , 2 , 3 ) < class ' tuple ' > { ' a ' : 1 , ' c ' : 3 , ' b ' : 2 } < class ' dict ' >

由此可见,带一个星号(*)参数的函数传人的参数存储为一个元组(tuple);

而带两个星号(*)参数的函数传人的参数则存储为一个字典(dict),并且在

调用是采取 a = 1, b = 2, c = 3 的形式。

由于传人的参数个数不定,所以当与普通参数一同使用时,必须把带星号的参

数放在最后。


你可能感兴趣的:(python函数参数带星号*)