龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > python编程 >

跟老齐学Python之变量和参数(3)

时间:2014-10-11 02:50来源:网络整理 作者:网络 点击:
分享到:
除了用*args这种形式的参数接收多个值之外,还可以用**kargs的形式接收数值,不过这次有点不一样: 复制代码 代码如下: def foo(**kargs): ... print kargs ... fo

除了用*args这种形式的参数接收多个值之外,还可以用**kargs的形式接收数值,不过这次有点不一样:

复制代码 代码如下:

>>> def foo(**kargs):
...     print kargs
...
>>> foo(a=1,b=2,c=3)    #注意观察这次赋值的方式和打印的结果
{'a': 1, 'c': 3, 'b': 2}

 如果这次还用foo(1,2,3)的方式,会有什么结果呢?

复制代码 代码如下:

>>> foo(1,2,3)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: foo() takes exactly 0 arguments (3 given)

 看官到这里可能想了,不是不确定性吗?我也不知道参数到底会可能用什么样的方式传值呀,这好办,把上面的都综合起来。

复制代码 代码如下:

>>> def foo(x,y,z,*args,**kargs):
...     print x  
...     print y
...     print z
...     print args
...     print kargs       
...
>>> foo('qiwsir',2,"python")
qiwsir
2
python
()
{}
>>> foo(1,2,3,4,5)
1
2
3
(4, 5)
{}
>>> foo(1,2,3,4,5,name="qiwsir")
1
2
3
(4, 5)
{'name': 'qiwsir'}

 很good了,这样就能够足以应付各种各样的参数要求了。

精彩图集

赞助商链接