Python的动态参数:

  1,参数前一个“*”:在函数中会把传的参数转成一个元组。

    

 def func (*args):
print(args) func(123,1,2,'a') result:(123, 1, 2, 'a')

  2,“**args”的参数:函数中被转成一个字典。

    

如果这样传参的话会报错,因为没有指定key或value:
def func (**args):
print(args) func(123,1,2,'a') result:TypeError: func() takes 0 positional arguments but 4 were given def func (**args):
print(args) func (a=1,b=2) result:{'a': 1, 'b': 2}

3,混合动态参数的情况:

def func (*args,**kwargs):
print("%s----%s" %(args,kwargs)) func (1,2,a=1,b=2) Result:(1, 2)----{'b': 2, 'a': 1} 也是没问题的,需要注意的是必须*args在前**kwargs在后,参数也是一样。

4,变量当动态参数的情况:

 

这种情况如果我们直接把一个list传到前面,一个dict传到后面:

def func (*args,**kwargs):
print("%s----%s" %(args,kwargs)) list=[1,2]
dic={'a':1,'b':2} func (list,dic) Result:([1, 2], {'b': 2, 'a': 1})----{} 后面的字典竟然是空的- -! So,我们需要叫函数知道那个变量是*args的参数,哪个是**args的参数,正确传参写法: func(*list,**dic Result:(1, 2)----{'a': 1, 'b': 2}

  

    

最新文章

  1. jmeter(六)元件的作用域与执行顺序
  2. 微博开放平台开发(一)获取access_token
  3. oracle启动脚本 .
  4. Java中的try,catch,finally
  5. 【GOF23设计模式】代理模式
  6. Mysql limit offset
  7. NoSuchMethodError: resolveTypeArguments
  8. spring WebServiceTemplate 调用 axis1.4 发布的webservice
  9. Js 变量的作用域
  10. 【转】HttpServlet详解
  11. Java之Map
  12. 禁止select下拉框的其中某个选择项不能被选择
  13. zoj 1083 Frame Stacking
  14. Spring注入
  15. pwn入门题x2
  16. 架构-架构风格:REST
  17. TCP/UDP client/server library for Java, 最好的java语言tcp udp 服务器客户端实现库
  18. MS sql 无法进行事务日志备份
  19. unix:/tmp/php-cgi.sock
  20. soapUI-DataSource Loop

热门文章

  1. 《开源安全运维平台OSSIM最佳实践》
  2. backup2
  3. C语言PIC32 serial bootloader和C#语言bootloader PC端串口通信程序
  4. 5、SQL Server数据库、T-SQL
  5. 利用循环播放dataurl的视频来防止锁屏:NoSleep.js
  6. Support Vector Machine (3) : 再谈泛化误差(Generalization Error)
  7. IO调度算法
  8. python学习心得第二章
  9. UVa 694 - The Collatz Sequence
  10. 正则表达式提取string 中的表名