浅谈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使用marshal模块序列化实例
Sep 25 Python
详解Python的Django框架中的中间件
Jul 24 Python
快速排序的算法思想及Python版快速排序的实现示例
Jul 02 Python
Python使用cx_Oracle调用Oracle存储过程的方法示例
Oct 07 Python
python正则表达式爬取猫眼电影top100
Feb 24 Python
浅谈python连续赋值可能引发的错误
Nov 10 Python
pycharm修改界面主题颜色的方法
Jan 17 Python
Python实现一个数组除以一个数的例子
Jul 20 Python
flask/django 动态查询表结构相同表名不同数据的Model实现方法
Aug 29 Python
Python socket模块ftp传输文件过程解析
Nov 05 Python
Python基于wordcloud及jieba实现中国地图词云图
Jun 09 Python
python中super()函数的理解与基本使用
Aug 30 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 特殊字符处理函数
2008/09/05 PHP
php单态设计模式(单例模式)实例
2014/11/18 PHP
Laravel如何自定义command命令浅析
2019/03/23 PHP
Yii2框架配置文件(Application属性)与调试技巧实例分析
2019/05/27 PHP
Thinkphp 3.2框架使用Redis的方法详解
2019/10/24 PHP
jQuery实战之仿淘宝商城左侧导航效果
2011/04/12 Javascript
JavaScript 原型继承
2011/12/26 Javascript
javascript验证身份证完全方法具体实现
2013/11/18 Javascript
JavaScript计算某一天是星期几的方法
2015/08/05 Javascript
跟我学习javascript的for循环和for...in循环
2015/11/18 Javascript
js多功能分页组件layPage使用方法详解
2016/05/19 Javascript
如何用js判断dom是否有存在某class的值
2017/02/13 Javascript
Vue学习之路之登录注册实例代码
2017/07/06 Javascript
基于vue中css预加载使用sass的配置方式详解
2018/03/13 Javascript
浅谈vue-cli 3.0.x 初体验
2018/04/11 Javascript
详解关于Vue版本不匹配问题(Vue packages version mismatch)
2018/09/17 Javascript
vue使用axios上传文件(FormData)的方法
2019/04/14 Javascript
js实现内置计时器
2019/12/16 Javascript
[02:47]2018年度DOTA2最佳辅助位选手4号位-完美盛典
2018/12/17 DOTA
Python多进程编程技术实例分析
2014/09/16 Python
【Python】Python的urllib模块、urllib2模块批量进行网页下载文件
2016/11/19 Python
python对列进行平移变换的方法(shift)
2019/01/10 Python
python try 异常处理(史上最全)
2019/03/07 Python
pandas 对日期类型数据的处理方法详解
2019/08/08 Python
python如何写出表白程序
2020/06/01 Python
HTML5 层的叠加的实现
2020/07/07 HTML / CSS
台湾家适得:Homeget
2019/02/11 全球购物
渔夫的故事教学反思
2014/02/14 职场文书
招聘专员岗位职责
2014/03/07 职场文书
热爱祖国演讲稿
2014/05/04 职场文书
户籍证明书标准模板
2014/09/10 职场文书
企业财务人员岗位职责
2015/04/14 职场文书
公司人力资源管理制度
2015/08/05 职场文书
咖啡厅里的创业计划书
2019/08/21 职场文书
解决IDEA翻译插件Translation报错更新TTK失败不能使用
2022/04/24 Python
muduo TcpServer模块源码分析
2022/04/26 Redis