Python传递参数的多种方式(小结)


Posted in Python onSeptember 18, 2019

一 位置传递

没什么好过多讲解.

# 位置传递实例:
def fun1(a,b,c):
  return a+b+c

print(fun1(1,2,3))

输出:

6

二 关键字传递

更具每个参数的名字写入函数参数

# 关键字传递
 def fun2(a,b,c):
  return a+b+c
 
print(fun2(1,c=3,b=2))

输出:

三 参数默认值传递

给函数的输入参数设定一个默认值,如果该参数最终没有输入,则使用默认参数出入函数.

# 默认值传递
 def fun3(a,b=2,c=3):
  return a+b+c

print(fun3(a = 1))

输出:

四 包裹传递

在定义函数时,我们有时候并不知道调用的时候会传递多少个参数。这时候,包裹(packing)位置参数或者包裹关键字参数来进行参数传递会非常有用。

下面是包裹位置传递的例子:

def fun4(*name):
 print(type(name))
print(name)

fun4([1,2,3])
fun4((1,2,3))
fun4(1,2,3)

结果:

<class 'tuple'>
([1, 2, 3],)
<class 'tuple'>
((1, 2, 3),)
<class 'tuple'>
(1, 2, 3)

从上面的结果分析:

在fun4的参数表中,所有的参数被name收集,根据位置合并成一个元祖(tuple),这就是包裹位置传递。

 五 解包裹传递

def func1(a,b=1,*c,**d):
  print(a,b,c,d)  

 
l = [3,4]
dic = {'@':2,'#':3}

func1(1,2,l,dic)
print("---------**------------")
func1(1,2,*l,**dic)
func1(1,2,3,4,**dic)

运行结果:

 1 2 ([3, 4], {'@': 2, '#': 3}) {}
 ---------**------------
 1 2 (3, 4) {'@': 2, '#': 3}
 1 2 (3, 4) {'@': 2, '#': 3}

 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python pandas库中DataFrame对行和列的操作实例讲解
Jun 09 Python
使用Py2Exe for Python3创建自己的exe程序示例
Oct 31 Python
对python3 Serial 串口助手的接收读取数据方法详解
Jun 12 Python
Pandas删除数据的几种情况(小结)
Jun 21 Python
Python turtle绘画象棋棋盘
Aug 21 Python
Python环境Pillow( PIL )图像处理工具使用解析
Sep 12 Python
利用pandas向一个csv文件追加写入数据的实现示例
Apr 23 Python
Python虚拟环境venv用法详解
May 25 Python
PyQt5实现画布小程序
May 30 Python
Python调用C语言程序方法解析
Jul 07 Python
opencv 阈值分割的具体使用
Jul 08 Python
python 调用js的四种方式
Apr 11 Python
余弦相似性计算及python代码实现过程解析
Sep 18 #Python
python之yield和Generator深入解析
Sep 18 #Python
PyTorch预训练的实现
Sep 18 #Python
用python实现英文字母和相应序数转换的方法
Sep 18 #Python
Django模板导入母版继承和自定义返回Html片段过程解析
Sep 18 #Python
Python爬虫图片懒加载技术 selenium和PhantomJS解析
Sep 18 #Python
python rsa实现数据加密和解密、签名加密和验签功能
Sep 18 #Python
You might like
PHP循环获取GET和POST值的代码
2008/04/09 PHP
php图片加中文水印实现代码分享
2012/10/31 PHP
PHP_SELF,SCRIPT_NAME,REQUEST_URI区别
2014/12/24 PHP
php实现替换手机号中间数字为*号及隐藏IP最后几位的方法
2016/11/16 PHP
拖拉表格的JS函数
2008/11/20 Javascript
利用js实现遮罩以及弹出可移动登录窗口
2013/07/08 Javascript
改变文件域的样式实现思路同时兼容ie、firefox
2013/10/23 Javascript
AJAX跨域请求json数据的实现方法
2013/11/11 Javascript
跟我学Nodejs(一)--- Node.js简介及安装开发环境
2014/05/20 NodeJs
Javascript递归打印Document层次关系实例分析
2015/05/15 Javascript
JavaScript使用键盘输入控制实现数字验证功能
2016/08/19 Javascript
webpack配置sass模块的加载的方法
2017/07/30 Javascript
JS中跳出循环的示例代码
2017/09/14 Javascript
Vue v2.5 调整和更新不完全问题
2017/10/24 Javascript
JS中精巧的自动柯里化实现方法
2017/12/12 Javascript
微信小程序日历效果
2018/12/29 Javascript
JavaScript实现美化滑块效果
2019/05/17 Javascript
vue 解决IOS10低版本白屏的问题
2020/11/17 Javascript
python网页请求urllib2模块简单封装代码
2014/02/07 Python
Python脚本处理空格的方法
2016/08/08 Python
Python实现多级目录压缩与解压文件的方法
2018/09/01 Python
python实现二维插值的三维显示
2018/12/17 Python
NumPy 数组使用大全
2019/04/25 Python
Python3网络爬虫中的requests高级用法详解
2019/06/18 Python
Python实现大数据收集至excel的思路详解
2020/01/03 Python
Python Scrapy图片爬取原理及代码实例
2020/06/12 Python
django rest framework使用django-filter用法
2020/07/15 Python
GNC健安喜官方海外旗舰店:美国著名保健品牌
2017/01/04 全球购物
英国领先的男装设计师服装购物网站:Mainline Menswear
2018/02/04 全球购物
土地转让协议书范本
2014/04/15 职场文书
演讲稿格式范文
2014/05/19 职场文书
初一新生军训方案
2014/05/22 职场文书
2016领导干部廉洁从政心得体会
2016/01/19 职场文书
Python爬虫基础讲解之请求
2021/05/13 Python
Nginx源码编译安装过程记录
2021/11/17 Servers
一文了解MYSQL三大范式和表约束
2022/04/03 MySQL