一、元组拆包(元组解包、迭代解包)

元组拆包可以应用到任何可迭代对象上(任何迭代对象),被可迭代对象中的元素数量必须要跟接受这些元素的元组的空档数一致。也可以使用用 * 来表示忽略多余的元素。

一般的迭代对象分为:元组,列表,字典,字符串等。如果有一些不能明确的对象,可以通过以下方式进行判断,是否为可迭代。

1、被迭代元素数量和接受元素的参数数量一致

2、数量不一致时,使用*号忽略多余的元素

3、嵌套元组

 4、使用占位符 _ 

二、python拆包

*args和 **kwargs是在python的代码中经常用到的两个参数,初学者对这两个参数的理解可能仅仅限于*args是用于接收多余的未命名参数,**kwargs用于接收实参中的命名参数,其中args是一个元组类型,而kwargs是一个字典类型的数据。 其实这两个参数还涉及到了python中的一个重要的知识点:拆包

1、*args

 

理解这段代码需要把握住下面几点:
1.形参中的*args其实真正接收数据的args,它是一个元组,把传进来的数据放在了args这个元组中。
2. 函数体里的args依然是那个元组,但是*args的含义就是把元组中的数据进行拆包,也就是把元组中的数据拆成单个数据。
3. 对于args这个元组,如果不对其进行解包,就将其作为实参传给其它以*args作为形参的函数时,args这个元组会看看作一个整体,作为一个类型为元组的数据传入。

2、**kwargs

最新文章

  1. webform文件上传、图片水印、验证码
  2. [转]MSI安装程序中的文件替换
  3. [转]File Descriptor泄漏导致Crash: Too many open files
  4. 为什么 MySQL 回滚事务也会导致 ibd 文件增大?
  5. android 使用shape来优化界面效果
  6. css 数字出现滚动条解决
  7. netbeans 快捷键
  8. Web Service实现分布式服务的基本原理
  9. golang之websocket 源码分析
  10. 微软职位内部推荐-Senior NLP Scientist & Developer
  11. Ruby Gem命令
  12. [leetcode] 399. Evaluate Division
  13. vc调用BCB的dll 参数传递 报错
  14. 关于Repeater中使用DorpWownList的问题
  15. Python编码问题整理【转】
  16. NLP —— 图模型(零):EM算法简述及简单示例(三硬币模型)
  17. SecureCRT标签显示标题
  18. {"error":"Content-Type header [application/x-www-form-urlencoded] is not supported","status":406}
  19. Codeforces Round #520
  20. c c++ 混合编译

热门文章

  1. Java tomcat Several ports (8005, 8080, 8009) required by Tomcat v9.0 Server at localhost
  2. 国家码和reginCode映射关系
  3. Qt之菜单栏工具栏入门
  4. 理解block和inode
  5. RobotFramework - AppiumLibrary 之关键字Open Application使用
  6. 性能测试Jmeter压测ZooKeeper-自定义java请求
  7. sql脚本过大,无法打开的解决方法
  8. C 语言 优先级
  9. Android 开发 关于7.0 FileUriExposedException异常 详解
  10. shell脚本实现telnet测试服务端口