python函数的5种参数详解


Posted in Python onFebruary 24, 2017

(1)       位置参数,调用函数时按位置传入参数

(2)       默认参数,即在函数定义时就给出参数的值,设置默认参数时要注意两点,一是必选参数在前,默认参数在后。二是把变化小的参数放在后面可作为默认参数。具有默认参数的函数被调用时可以不传入默认参数,若需要改变默认参数的值则可以赋值的形式调用该函数。若不按顺序提供默认参数则需要把参数名写上(即以赋值的形式)。默认参数必须指向不变的参数(即不变对象,对象内部的数据一旦创建就不能改变,在多任务环境下同时读取对象不需要加锁)

(3)       可变参数,即传入参数的个数是可变的。由于参数的个数不确定我们可以把参数作为一个list或tuple传入,访问时可以使用for循环访问。如果直接利用可变参数,定义可变参数和定义list或tuple参数相比仅仅在参数前面加一个*号。在涵数内部参数接收到的是一个tuple,因此函数代码完全不变,但是,调用函数时可以传入任意个参数,包括0个参数。如果已经有一个list或tuple要调用一个可变参数有两种方法,一是分别取出各参数并传入。二是在其前面加上一个*号,把list或tuple的元素变成可变参数传进去。

(4)       关键字参数,可变参数允许你传入0个或任意个参数,这些参数在函数调用时自动组装成一个tuple。而关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict。如果传入的关键字参数为dict则可以将函数中的那个参数前面加两个**号。

(5)       命名关键字参数,用于限制关键字的名字。和关键字参数**kw不同,命名关键字参数需要一个特殊分隔符*,*后面的参数被视为命名关键字参数。如果函数定义中已经有了一个可变参数,后面跟着的命名参数就不需要一个特殊分隔符*号了。命名关键字参数必须传入参数名,这和位置参数不同。如果没有传入参数名,调用将报错。

注意:参数的定义顺序是:必选参数、默认参数(一定要用不可变对象)、可变参数、命名关键字参数、关键字参数  def f(a,b,c=0,*,d,**kw),对于任意函数都可以通过类似fun(*arg,**kw)的形式调用它,无论它的参数是如何定义的。

*arg是可变参数,arg接收的是tuple

**kw是关键字参数,kw接收的是dict

可变参数即可以直接传入:fun(1,2,3),又可以先组装list或tuple,再通过*arg传入:func(*(1,2,3));

关键字参数既可以直接传入:fun(a=1,b=2),又可以先组装dict,再通过**kw传入:function(**{‘a':1,'b':2})

Python 相关文章推荐
python线程池的实现实例
Nov 18 Python
python采集博客中上传的QQ截图文件
Jul 18 Python
让python在hadoop上跑起来
Jan 27 Python
Flask框架中密码的加盐哈希加密和验证功能的用法详解
Jun 07 Python
python僵尸进程产生的原因
Jul 21 Python
详解python算法之冒泡排序
Mar 05 Python
Python中Numpy ndarray的使用详解
May 24 Python
opencv 获取rtsp流媒体视频的实现方法
Aug 23 Python
python进程池实现的多进程文件夹copy器完整示例
Nov 27 Python
使用python-opencv读取视频,计算视频总帧数及FPS的实现
Dec 10 Python
pytorch 实现查看网络中的参数
Jan 06 Python
Python实现Appium端口检测与释放的实现
Dec 31 Python
Python实现读取文件最后n行的方法
Feb 23 #Python
Python基础教程之tcp socket编程详解及简单实例
Feb 23 #Python
Python命令启动Web服务器实例详解
Feb 23 #Python
Python 基础教程之包和类的用法
Feb 23 #Python
python安装oracle扩展及数据库连接方法
Feb 21 #Python
python安装cx_Oracle模块常见问题与解决方法
Feb 21 #Python
Python实现字符串格式化的方法小结
Feb 20 #Python
You might like
查找mysql字段中固定字符串并替换的几个方法
2012/09/23 PHP
Smarty中的注释和截断功能介绍
2015/04/09 PHP
PHP中include/require/include_once/require_once使用心得
2016/08/28 PHP
JavaScript 应用技巧集合[推荐]
2009/08/30 Javascript
基于JQuery制作的产品广告效果
2010/12/08 Javascript
jQuery登陆判断简单实现代码
2013/04/21 Javascript
自动设置iframe大小的jQuery代码
2013/09/11 Javascript
javascript打开word文档的方法
2014/04/16 Javascript
jquery 隐藏与显示tr标签示例代码
2014/06/06 Javascript
javascript限制用户只能输汉字中文的方法
2014/11/20 Javascript
jQuery 中DOM 操作详解
2015/01/13 Javascript
javascript实现鼠标拖动改变层大小的方法
2015/04/30 Javascript
通过正则表达式获取url中参数的简单实现
2016/06/07 Javascript
Jquery删除css属性的简单方法
2016/12/04 Javascript
JavaScript中创建对象的7种模式详解
2017/02/21 Javascript
对vue事件的延迟执行实例讲解
2018/08/28 Javascript
使用elementUI实现将图片上传到本地的示例
2018/09/04 Javascript
babel7.x和webpack4.x配置vue项目的方法步骤
2019/05/12 Javascript
[59:48]LGD vs IG 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python 中 Virtualenv 和 pip 的简单用法详解
2017/08/18 Python
Python基于回溯法子集树模板解决马踏棋盘问题示例
2017/09/11 Python
对Python 数组的切片操作详解
2018/07/02 Python
Python3.8中使用f-strings调试
2019/05/22 Python
python 3.6.7实现端口扫描器
2019/09/04 Python
使用PyCharm进行远程开发和调试的实现
2019/11/04 Python
解决pycharm中导入自己写的.py函数出错问题
2020/02/12 Python
全陪导游欢迎词
2014/01/17 职场文书
2014元旦晚会策划方案
2014/02/19 职场文书
电厂职工自我鉴定
2014/02/20 职场文书
报告会主持词
2014/04/02 职场文书
团干部培训方案
2014/06/03 职场文书
股东出资证明书范例
2014/10/04 职场文书
争先创优个人总结
2015/03/04 职场文书
《大禹治水》教学反思
2016/02/22 职场文书
500字作文之周记
2019/12/13 职场文书
有趣的二维码:使用MyQR和qrcode来制作二维码
2021/05/10 Python