本文主要介绍调用函数传递参数时序列解包的用法。在定义函数时在形参前面加2个星号**表示可变长度参数,可以收集若干关键参数形式的参数传递并存放到一个字典之中。与之相对,如果实参是个字典,可以使用两个星号**对其进行解包,会把字典转换成类似于关键参数的形式进行参数传递。对于这种形式的序列解包,要求实参字典中的所有键都必须是函数的形参名称,或者与函数中两个星号的可变长度参数相对应。

# 要解包的字典

>>> p = {'a':1, 'b':2, 'c':3}

# 带有位置参数和默认值参数的函数

>>> def f(a, b, c=5):

print(a, b, c)

>>> f(**p)

1 2 3

# 带有多个默认值参数的函数

>>> def f(a=3, b=4, c=5):

print(a, b, c)

# 对字典元素进行解包

>>> f(**p)

1 2 3

# 接收字典形式可变长度参数的函数

>>> def demo(**p):

for item in p.items():

print(item)

>>> p = {'x':1, 'y':2, 'z':3}

# 对字典元素进行解包

>>> demo(**p)

('y', 2)

('z', 3)

('x', 1)

--------------我是分割线-------------

相关阅读:

详解Python序列解包

详解Python中的序列解包(2)

详解Python序列解包(3)

--------------我是分割线-------------

“Python小屋”公众号近期主要活动:

1、Python师资培训班:8月6日-12日,济南,面向全国高校老师和企业朋友,通知详见关于举办2017年暑期全国高校教师 “Python编程及应用”培训班通知,赠送Python教材2本、Python教学PPT超过1600页,Python教学视频140集,Python教学案例300个,以及教学大纲、教案、考试题库等全套资源。补充说明:如果不需要安排住宿的话,5天学费2100元(含午餐)。

详解Python序列解包(4)相关推荐

  1. 详解Python序列解包(5)

    如果一个函数需要以多种形式来接收参数,定义时一般把位置参数放在最前面,然后是默认值参数,接下来是一个星号的可变长度参数,最后是两个星号的可变长度参数:调用函数时,一般也按照这个顺序进行参数传递.调用函 ...

  2. 详解Python序列解包(3)

    本文主要介绍调用函数传递参数时序列解包的用法.在调用函数传递参数时,可以在实参序列前加一个星号*进行序列解包,或在实参字典前加两个星号**进行解包,本文介绍第一种用法,第二种用法后面再单独发文介绍. ...

  3. python序列解包_python中解包

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 序列解包(sequence unpacking)是python中非常重要和常用的 ...

  4. python xlrd安装_详解python中xlrd包的安装与处理Excel表格

    一.安装xlrd 地址 下载后,使用 pip install .whl安装即好. 查看帮助: >>> import xlrd >>> help(xlrd) Help ...

  5. python 链式比较 2._特色的Python序列解包、链式赋值、链式比较

    一.序列解包 序列解包(或可迭代对象解包):解包就是从序列中取出其中的元素的过程,将一个序列(或任何可迭代对象)解包,并将得到的值存储到一系列变量中. 一般情况下要解包的序列包含的元素个数必须与你在等 ...

  6. python 序列解包(解压缩)

    所学的解压缩 如果我们给出一个列表,我们需要一次性取出多个值,我们是不是可以用下面的方式实现呢? name_list = ['nick', 'egon', 'jason'] x = name_list ...

  7. python序列解包求水仙花数_790.琉璃菜的糖浆欠火或过火,都会影响成品的( )。

    [填空题]kidney [填空题]管,隧道 [其它]1.随机产生20个1-100的整数, 并创建列表,用切片提取偶数位置的元素 2.随机产生5个元素( 0,1,2,3,4),然后对1,3元素进行4次方 ...

  8. Python序列解包

    一.什么是序列解包? 它是Python3.0提供的语法糖,有助于简化代码.更好的理解代码.如下例子: >>> x,y,z = (1, 2, 3) >>> x 1 & ...

  9. 【Python】详解Python模块、包、库

    本文目录 1.模块 定义模块 导入模块 调用模块中函数 方法1 模块名.函数名 方法2 from 模块名 import 函数名1.函数名2,.. 方法3 from 模块名 import * 给模块取个 ...

最新文章

  1. android+图标闪烁动画,如何在android中闪烁通知图标? [DONE]
  2. Geoffrey Hinton 等6位图灵奖得主和100多位专家邀请您共话人工智能下一个十年
  3. 请确保此代码文件中定义的类与“inherits”属性匹配,并且该类扩展的基类(例如Page 或UserControl)是正确的。...
  4. 结合keepalived实现redis群集高可用故障自动切换
  5. java 以一个最高有效位为1的二进制数字开始_第02章 Java编程基础
  6. 安装 CORD 之前需要了解的术语
  7. java反射对象赋值_Java反射详解
  8. 飞书成小米数万员工协作工具,雷军:越用越顺手
  9. for、while、do while 3种循环异同点
  10. 3dContactPointAnnotationTool开发日志(八)
  11. 预定义类型未定义或导入_探索类型系统的底层 - 自己实现一个 TypeScript
  12. linux下运行hadoop,Linux命令行下运行Hadoop单元测试
  13. 冯诺依曼体系结构示意图
  14. windows下choco 安装helm
  15. 江西2万余个村庄整治建设 古村落旧貌换新颜
  16. 下拉推荐在 Shopee Chatbot 中的探索和实践
  17. ie8 阻止java运行_解决IE屏蔽Java Applet问题的方法
  18. Delphi 2010的好消息
  19. 编译链接脚本lds文件
  20. 计算机里边找不到附件,win10系统开始菜单中找不到附件的具体教程

热门文章

  1. python爬虫开发环境中几个爬虫库的主要用途_分分钟了解Python爬虫
  2. 疯狂的html css,疯狂Html+CSS+JS 中JS总结
  3. java 改为matlab_用面向对象的方法将一段JAVA代码转化为matlab
  4. mysql 删除表时外键约束_MySQL删除表的时候忽略外键约束的简单实现
  5. 后台给前台传值 php,前后台传值的几种方式(html,js,php)
  6. matlab制作萨克斯音乐,Cmusic Productions SAXBAND Soprano Sax KONTAKT 萨克斯
  7. rbac模型的特点和优势_权限体系设计:融合了组织和岗位的权限模型长啥样?...
  8. java 设置主线程_Java线程编程中的主线程讲解
  9. Spring3集成Swagger2遇到问题总结
  10. 基于JAVA+Swing+MYSQL的停车场管理系统