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中Collection的使用小技巧
Aug 18 Python
python+opencv轮廓检测代码解析
Jan 05 Python
pandas 根据列的值选取所有行的示例
Nov 07 Python
flask应用部署到服务器的方法
Jul 12 Python
python3安装crypto出错及解决方法
Jul 30 Python
python 多维高斯分布数据生成方式
Dec 09 Python
Python原始套接字编程实例解析
Jan 29 Python
基于python修改srt字幕的时间轴
Feb 03 Python
Python实现自动访问网页的例子
Feb 21 Python
利用Python计算KS的实例详解
Mar 03 Python
Python必须了解的35个关键词
Jul 16 Python
python 实现的车牌识别项目
Jan 25 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
Mysql数据库操作类( 1127版,提供源码下载 )
2010/12/02 PHP
第三章 php操作符与控制结构代码
2011/12/30 PHP
php解析xml提示Invalid byte 1 of 1-byte UTF-8 sequence错误的处理方法
2013/11/14 PHP
php中实现精确设置session过期时间的方法
2014/07/17 PHP
php中mt_rand()随机数函数用法
2014/11/24 PHP
Yii的CDbCriteria查询条件用法实例
2014/12/04 PHP
深入解析PHP的Yii框架中的缓存功能
2016/03/29 PHP
JavaScript面向对象之Prototypes和继承
2012/07/12 Javascript
Js中的onblur和onfocus事件应用介绍
2013/08/27 Javascript
JavaScript按位运算符的应用简析
2014/02/04 Javascript
javascript框架设计之框架分类及主要功能
2015/06/23 Javascript
浅谈window对象的scrollBy()方法
2015/07/15 Javascript
最好用的Bootstrap fileinput.js文件上传组件
2016/12/12 Javascript
BootStrap入门学习第一篇
2017/08/28 Javascript
微信小程序使用checkbox显示多项选择框功能【附源码下载】
2017/12/11 Javascript
js实现随机div颜色位置 类似满天星效果
2019/10/24 Javascript
vue 实现input表单元素的disabled示例
2019/10/28 Javascript
js实现旋转木马轮播图效果
2020/01/10 Javascript
vue的$http的get请求要加上params操作
2020/11/12 Javascript
Face++ API实现手势识别系统设计
2018/11/21 Python
Python 实现try重新执行
2019/12/21 Python
卸载tensorflow-cpu重装tensorflow-gpu操作
2020/06/23 Python
使用HTML5里的classList操作CSS类
2016/06/28 HTML / CSS
Html5页面获取微信公众号的openid的方法
2020/05/12 HTML / CSS
阿迪达斯印尼官方网站:adidas印尼
2020/02/10 全球购物
房地产销售大学生自我评价分享
2013/11/11 职场文书
网页设计个人找工作求职信
2013/11/28 职场文书
四风存在的原因分析
2014/02/11 职场文书
仓库管理员岗位职责
2014/03/19 职场文书
2015年政治教研组工作总结
2015/07/22 职场文书
《风筝》教学反思
2016/02/23 职场文书
python tkinter Entry控件的焦点移动操作
2021/05/22 Python
关于springboot 配置date字段返回时间戳的问题
2021/07/25 Java/Android
纯html+css实现奥运五环的示例代码
2021/08/02 HTML / CSS
vue+elementUI实现表格列的显示与隐藏
2022/04/13 Vue.js
Golang bufio详细讲解
2022/04/21 Golang