浅谈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装饰器使用示例及实际应用例子
Mar 06 Python
Python中内置数据类型list,tuple,dict,set的区别和用法
Dec 14 Python
独特的python循环语句
Nov 20 Python
Python中用psycopg2模块操作PostgreSQL方法
Nov 28 Python
使用Python搭建虚拟环境的配置方法
Feb 28 Python
Python中的groupby分组功能的实例代码
Jul 11 Python
Python初学者需要注意的事项小结(python2与python3)
Sep 26 Python
Python多图片合并PDF的方法
Jan 03 Python
Python解释器及PyCharm工具安装过程
Feb 26 Python
python selenium操作cookie的实现
Mar 18 Python
基于virtualenv创建python虚拟环境过程图解
Mar 30 Python
基于python模拟TCP3次握手连接及发送数据
Nov 06 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_merge合并数组的区别深入分析
2013/06/03 PHP
PHP实现的简单在线计算器功能示例
2017/08/02 PHP
JavaScript 动态添加表格行 使用模板、标记
2009/10/24 Javascript
JavaScript的漂亮的代码片段
2013/06/05 Javascript
引入autocomplete组件时JS报未结束字符串常量错误
2014/03/19 Javascript
JS判断鼠标进入容器的方向与window.open新窗口被拦截的问题
2016/12/23 Javascript
深入理解vue Render函数
2017/07/19 Javascript
Vue2.0父组件与子组件之间的事件发射与接收实例代码
2017/09/19 Javascript
微信小程序使用canvas的画图操作示例
2019/01/18 Javascript
[jQuery] 事件和动画详解
2019/03/05 jQuery
详解vue-element Tree树形控件填坑路
2019/03/26 Javascript
jQuery实现input[type=file]多图预览上传删除等功能
2019/08/02 jQuery
Node.js安装详细步骤教程(Windows版)详解
2019/09/01 Javascript
layui动态绑定事件的方法
2019/09/20 Javascript
利用vue3+ts实现管理后台(增删改查)
2020/10/30 Javascript
详解如何在vue+element-ui的项目中封装dialog组件
2020/12/11 Vue.js
使用Python进行二进制文件读写的简单方法(推荐)
2016/09/12 Python
使用selenium模拟登录解决滑块验证问题的实现
2019/05/10 Python
python ChainMap 合并字典的实现步骤
2019/06/11 Python
python爬虫 正则表达式解析
2019/09/28 Python
Python递归调用实现数字累加的代码
2020/02/25 Python
Django高并发负载均衡实现原理详解
2020/04/04 Python
matlab 计算灰度图像的一阶矩,二阶矩,三阶矩实例
2020/04/22 Python
python 自定义异常和主动抛出异常(raise)的操作
2020/12/11 Python
使用Html5实现异步上传文件,支持跨域,带有上传进度条
2016/09/17 HTML / CSS
美国知名的隐形眼镜电商:Contacts America
2019/11/19 全球购物
override和overload的区别
2016/03/09 面试题
UNIX命令速查表
2012/03/10 面试题
幼儿园毕业寄语
2014/04/03 职场文书
社区党建工作方案
2014/06/10 职场文书
党员先进性教育整改措施
2014/09/18 职场文书
2014光棍节大学生联谊活动方案
2014/10/10 职场文书
夫妻忠诚协议书范本
2014/11/17 职场文书
小学校本教研总结
2015/08/13 职场文书
如何在Python项目中引入日志
2021/05/31 Python
SQL 聚合、分组和排序
2021/11/11 MySQL