浅谈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 相关文章推荐
python3.3实现乘法表示例
Feb 07 Python
详解Python中的循环语句的用法
Apr 09 Python
Python基于回溯法子集树模板解决0-1背包问题实例
Sep 02 Python
python数字图像处理之高级滤波代码详解
Nov 23 Python
python 实现对数据集的归一化的方法(0-1之间)
Jul 17 Python
Python multiprocess pool模块报错pickling error问题解决方法分析
Mar 20 Python
python将类似json的数据存储到MySQL中的实例
Jul 12 Python
Python实现队列的方法示例小结【数组,链表】
Feb 22 Python
详解Ubuntu环境下部署Django+uwsgi+nginx总结
Apr 02 Python
Python3爬虫中Ajax的用法
Jul 10 Python
详解python 支持向量机(SVM)算法
Sep 18 Python
python基于win32api实现键盘输入
Dec 09 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
sourcesafe管理phpproj文件的补充说明(downmoon)
2009/04/11 PHP
PHP中遍历stdclass object的实现代码
2011/06/09 PHP
基于curl数据采集之单页面采集函数get_html的使用
2013/04/28 PHP
ThinkPHP路由详解
2015/07/27 PHP
ECSHOP在PHP5.5及高版本上报错的解决方法
2015/08/31 PHP
php遍历解析xml字符串的方法
2016/05/05 PHP
Smarty模板变量调节器用法分析
2016/05/23 PHP
Google 静态地图API实现代码
2010/11/19 Javascript
JS实现匀速运动的代码实例
2013/11/29 Javascript
JavaScript通过元素的ID和name设置样式
2014/07/08 Javascript
详解JavaScript时间格式化
2015/12/23 Javascript
基于javascript实现图片懒加载
2016/01/05 Javascript
javascript检测flash插件是否被禁用的方法
2016/01/14 Javascript
理解javascript函数式编程中的闭包(closure)
2016/03/08 Javascript
Seajs 简易文档 提供简单、极致的模块化开发体验
2016/04/13 Javascript
AngularJS中的API(接口)简单实现
2016/07/28 Javascript
浅析vue数据绑定
2017/01/17 Javascript
Javascript创建类和对象详解
2017/05/31 Javascript
JS实现图片居中悬浮效果
2017/12/25 Javascript
nginx部署访问vue-cli搭建的项目的方法
2018/02/12 Javascript
javascript中的event loop事件循环详解
2018/12/14 Javascript
[00:44]TI7不朽珍藏III——军团指挥官不朽展示
2017/07/15 DOTA
[01:18:33]Secret vs VGJ.S Supermajor小组赛C组 BO3 第一场 6.3
2018/06/04 DOTA
跟老齐学Python之编写类之二方法
2014/10/11 Python
python 写入csv乱码问题解决方法
2016/10/23 Python
python障碍式期权定价公式
2019/07/19 Python
python numpy之np.random的随机数函数使用介绍
2019/10/06 Python
Python操作Excel的学习笔记
2021/02/18 Python
python利用后缀表达式实现计算器功能
2021/02/22 Python
财务管理个人自荐书范文
2013/11/24 职场文书
高级编程求职信模板
2014/02/16 职场文书
读书笔记格式
2015/07/02 职场文书
jquery插件实现悬浮的菜单
2021/04/24 jQuery
Java面试题冲刺第十七天--基础篇3
2021/08/07 面试题
Vue全局事件总线你了解吗
2022/02/24 Vue.js