python学习笔记(14)参数对应
原链:http://www.cnblogs.com/vamei/archive/2012/07/08/2581264.html
笔记:
1 #第14讲 2 #参数对应 3 4 #参数传递 5 def f(a,b,c): 6 return a+b+c 7 8 print (f(1,2,3)) 9 10 #这个是按照参数位置来传递的,把1传递给a,把2传递给b,把c传递给3,return a+b+c 11 12 print (f(c=2,b=3,a=4)) 13 #关键字传递,是根据参数名字传递参数,把c的2传给c 14 #不用考虑位置因素 15 16 #关键字传递和位置传递混用,但是位置参数要在关键字之前 17 print (f(1,c=2,b=4)) 18 #把1传递给a,剩下按照参数名字传递 19 20 #参数默认值 21 def f(a,b,c=10): 22 return a+b+c 23 24 print (f(2,3)) 25 #根据位置传递,把2传递a,把3传递给b,c使用默认值10 26 #输出就是15 27 28 print (f(3,2,1)) 29 #有了足够的值,c=1,就不用c=10了 30 #输出就是6 31 32 33 34 #包裹传递 35 def func(*name): 36 print (type(name)) 37 print (name) 38 39 func(1,4,6) 40 41 #<class 'tuple'> 42 #(1, 4, 6) 43 #所有参数被收集,合并成一个元组(tuple),包裹传递 44 #尝试过list,会报错 45 46 func(5,6,7,1,2,3) 47 48 #输出<class 'tuple'> 49 #(5, 6, 7, 1, 2, 3) 50 51 52 ###为了提醒python,参数name是包裹位置传递所用的元组名,定义func时,在name前加* 53 54 55 #包裹关键字传递 56 57 def func(**dict): 58 print (type(dict)) 59 print (dict) 60 61 func(a=1,b=9) 62 #输出是一个字典:{'a': 1, 'b': 9} 63 func(m=2,n=1,c=11) 64 #同理{'m': 2, 'n': 1, 'c': 11} 65 #所有参数被dict收集 66 67 ###参数dict是包裹关键字传递用的字典,在dict前加** 68 #包裹传递,定义函数,def func(),在相应元组或字典前加*或** 69 70 71 #解包裹 unpacking 72 73 def func(a,b,c): 74 print (a,b,c) 75 76 args = (1,3,4) 77 func(*args) 78 #输出结果:1,3,4 79 80 #解包裹,让tuple 每一个元素对应一个位置参数 81 # * 的作用,提醒python,我想把args拆分的三个元素,分别传递a b c 82 #没有 * 的话,会把args 当做一个参数传递,但是其他位置没有元素,就会报错 83 #func()里面只有一个元素,可以不用 * 号 84 85 86 dict = {'a':1, 'b':2, 'c':3} 87 func(**dict) 88 89 #输出结果:1,2,3 90 #字典传递,字典每个key 作为关键字传递给func 91 92 93 94 #定义或者调用参数,参数可以混合传递 95 #混合传递要注意前后顺序,就1,b=3,c=4 96 97 ''' 98 def f(a,b,c): 99 return a+b+c 100 101 print (f(a=1,b=3,4)) 102 SyntaxError: positional argument follows keyword argument 103 ''' 104 105 #先位置,再关键字,再包裹位置,再包裹关键字 106 107 108 def func(a,b,c=1): 109 print (a,b,c) 110 111 args = (1,2) 112 func(*args) 113 114 #输出是 1,2,1
func(*dict)
返回dict 的key
func(**dict)
返回dict 的value
20171016更新
在页面下面发现一个很实用的例子
def func(a=0,b=0,c=0,d=0,e=0,f=0,g=0):print (a,b,c,d,e,f,g)args = (4,5) args1 = {'e':6, 'd':7} func(1,*args,g=2,f=3,**args1)#同时传递位置参数,关键字参数,包裹参数,包裹关键字参数 # *args 提示是元组,b就是4,c就是5 #g 是2 f是3 # **args1 是dict ,取值,e是6 d是7 #输出:1 4 5 7 6 3 2
转载于:https://www.cnblogs.com/liyihao/p/7677451.html
python学习笔记(14)参数对应相关推荐
- Python学习笔记14(socket编程)
socket更详细的介绍在这篇就不做说明了,有兴趣的同学可以去网上查找相关资料或者直接https://docs.python.org/3/library/socket.html查看 简单的理解,soc ...
- python学习笔记14 图像格式转换png转jpg
#Time:20181008 22:23 #将png图像转换为jpg #form:https://blog.csdn.net/bevison/article/details/79126410?utm_ ...
- Python学习笔记14:标准库之信号量(signal包)
signal包负责在Python程序内部处理信号.典型的操作包含预设信号处理函数,暂停并等待信号,以及定时发出SIGALRM等. 要注意,signal包主要是针对UNIX平台(比方Linux, MAC ...
- [python教程入门学习]python学习笔记(CMD执行文件并传入参数)
本文章向大家介绍python学习笔记(CMD执行文件并传入参数),主要包括python学习笔记(CMD执行文件并传入参数)使用实例.应用技巧.基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋 ...
- 廖Python学习笔记一
1. 廖Python学习笔记 大的分类 如函数 用二级标题,下面的用三级 如输入输出 1.1.1. 输入输出 1.1.1.1. 输出 用 print() 在括号里加上字符串,就可以向屏幕上输出指定的文 ...
- Python学习笔记(六)
1. IO编程 1.1 文件读写 1.2 StringIO和BytesIO 1.3 操作文件和目录 1.4 序列化 2. 进程和线程 2.1 多进程 2.2 多线程 2.3 ThreadLocal 2 ...
- OpenCV之Python学习笔记(1)(2): 图像的载入、显示和保存 图像元素的访问、通道分离与合并
OpenCV之Python学习笔记 一直都在用Python+OpenCV做一些算法的原型.本来想留下发布一些文章的,可是整理一下就有点无奈了,都是写零散不成系统的小片段.现在看到一本国外的新书< ...
- Python学习笔记:第三方模块2
前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...
- Python学习笔记:常用第三方模块(1)
前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...
最新文章
- 子网掩码 以及 子网数为什么减去全0和全1
- mybatis-spring从1.1升级到1.2所带来的dao层级的编写问题
- php mysql备份成sql_单php文件实现备份MySQL导出为.sql数据库代码
- Partition--分区总结
- Spring全自动AOP和项目加入jar包
- java实用教程——组件及事件处理——设置组件的位置(相对于窗口具体位置和布局)
- Android开发 GradientDrawable详解
- python数据挖掘学习笔记】十九.鸢尾花数据集可视化、线性回归、决策树花样分析
- TechWeb:转载合作须知!
- retrofit框架学习(一)----基本用法
- SAP License:SAP与ORACLE到底谁更强?
- SAP License:SAP IDES 4.71的安装补充
- Android 简单实现控件的拖动
- oracle技术之oracle备份恢复概述
- Linux服务-搭建NFS
- 第十五章 第十五章 异步A3C(Asynchronous Advantage Actor-Critic,A3C)-强化学习理论学习与代码实现(强化学习导论第二版)
- 软件功能测试用例表,功能测试用例模板.xls
- 《开源公开课分享》:Java开源框架案例分享
- MOS管的源极和漏极的区别
- 很多人觉得FPGA难学,因为他们没总结出数电的尽头是模电!