浅谈Python中函数的参数传递


Posted in Python onJune 21, 2016

1.普通的参数传递

>>> def add(a,b): 
  return a+b 
 
>>> print add(1,2) 
3
>>> print add('abc','123') 
abc123

2.参数个数可选,参数有默认值的传递

>>> def myjoin(string,sep='_'): 
  return sep.join(string) 
 
>>> myjoin('Test') 
'T_e_s_t'
>>> myjoin('Test',';') 
'T;e;s;t' 
?
>>> def myrange(start=0,stop,step=1): 
  print stop,start,step 
   
SyntaxError: non-default argument follows default argument

参数sep的缺省值是'_' 如果这个参数不给定值就会使用缺省值 如果给定 则使用给定的值

需要注意 如果一个参数是可选参数 那么它后面所有的参数都应该是可选的,另外 可选参数的顺序颠倒依然可以正确的给对应的参数赋值 但必须清楚的指明变量名和值

3.个数可变参数

>>> def printf(fmt,*arg): 
  print fmt%arg 
 
   
>>> printf ('%d is larger than %d',2,1) 
2 is larger than 1

函数中的*arg必须是最后一个参数,*表示任意多个参数,*arg会把除了前面以外所有的参数放到一个tuple里面传递给函数,可以在函数中通过arg来访问

arg是一个tuple,可以通过访问tuple的方法在函数中访问arg

另一种方式传递任意个数参数是通过dictionary的方式来传递 同样也可以接受多个参数 但是每个参数需要指明名称对应关系比如a=1,b=2,c=3

>>> def printf(format,**keyword): 
  for k in keyword.keys(): 
    print "keyword[%s] %s %s"%(k,format,keyword[k]) 
 
     
>>> printf('is',one=1,tow=2,three=3) 
keyword[three] is 3
keyword[tow] is 2
keyword[one] is 1

这些方法可以混在一起用 但是一定要注意顺序,函数会先接受固定参数,然后可选参数,然后任意参数(tuple),然后字典任意参数(dict)

以上这篇浅谈Python中函数的参数传递就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python实现根据指定端口探测服务器/模块部署的方法
Aug 25 Python
在Python中使用dict和set方法的教程
Apr 27 Python
python实现linux下使用xcopy的方法
Jun 28 Python
python 实现红包随机生成算法的简单实例
Jan 04 Python
使用Python和xlwt向Excel文件中写入中文的实例
Apr 21 Python
python实现按长宽比缩放图片
Jun 07 Python
Python实现快速计算词频功能示例
Jun 25 Python
Django REST framework内置路由用法
Jul 26 Python
手机使用python操作图片文件(pydroid3)过程详解
Sep 25 Python
python制作朋友圈九宫格图片
Nov 03 Python
python如何实现读取并显示图片(不需要图形界面)
Jul 08 Python
Python绘图之二维图与三维图详解
Aug 04 Python
对比Python中__getattr__和 __getattribute__获取属性的用法
Jun 21 #Python
常见python正则用法的简单实例
Jun 21 #Python
小议Python中自定义函数的可变参数的使用及注意点
Jun 21 #Python
简单讲解Python编程中namedtuple类的用法
Jun 21 #Python
Python编程中实现迭代器的一些技巧小结
Jun 21 #Python
Centos Python2 升级到Python3的简单实现
Jun 21 #Python
Python的Django框架中forms表单类的使用方法详解
Jun 21 #Python
You might like
php array_filter除去数组中的空字符元素
2020/06/21 PHP
关于js和php对url编码的处理方法
2014/03/04 PHP
Laravel Eloquent ORM 实现查询表中指定的字段
2019/10/17 PHP
获取元素距离浏览器周边的位置的方法getBoundingClientRect
2013/04/17 Javascript
求数组最大最小值方法适用于任何数组
2013/08/16 Javascript
javascript作用域问题实例分析
2015/07/13 Javascript
基于HTML+CSS,jQuery编写的简易计算器后续(添加了键盘监听)
2016/01/05 Javascript
jQuery 操作input中radio的技巧
2016/07/18 Javascript
深入浅出ES6之let和const命令
2016/08/25 Javascript
uploader秒传图片到服务器完整代码
2017/04/22 Javascript
vue脚手架中配置Sass的方法
2018/01/04 Javascript
通过JavaScript下载文件到本地的方法(单文件)
2019/03/17 Javascript
使用Vue-Awesome-Swiper实现旋转叠加轮播效果&平移轮播效果
2019/08/16 Javascript
在vue中获取wangeditor的html和text的操作
2020/10/23 Javascript
[02:49]2014DOTA2电竞也是体育项目! 势要把荣誉带回中国!
2014/07/20 DOTA
Python通过select实现异步IO的方法
2015/06/04 Python
python脚本设置系统时间的两种方法
2016/02/21 Python
windows下python之mysqldb模块安装方法
2017/09/07 Python
python实现远程控制电脑
2019/05/23 Python
python设置环境变量的原因和方法
2019/06/24 Python
python线程安全及多进程多线程实现方法详解
2019/09/27 Python
Python帮你识破双11的套路
2019/11/11 Python
Python常用模块os.path之文件及路径操作方法
2019/12/03 Python
Python实现随机生成任意数量车牌号
2020/01/21 Python
python 贪心算法的实现
2020/09/18 Python
html5 figure和figcaption的使用方法
2018/09/10 HTML / CSS
为什么要用EJB
2014/04/17 面试题
既然说Ruby中一切都是对象,那么Ruby中类也是对象吗
2013/01/26 面试题
设计顾问服务计划书
2014/05/04 职场文书
2014组织生活会方案
2014/05/19 职场文书
销售人员求职信
2014/07/22 职场文书
初中生思想道德自我评价
2015/03/09 职场文书
三好学生竞选稿
2015/11/21 职场文书
用Java实现简单计算器功能
2021/07/21 Java/Android
游戏《东方异文石:爱亚利亚黎明》正式版发布
2022/04/03 其他游戏
Win11 引入 Windows 365 云操作系统,适应疫情期间混合办公模式:启动时直接登录、模
2022/04/06 数码科技