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 相关文章推荐
Linux下用Python脚本监控目录变化代码分享
May 21 Python
TensorFlow实现AutoEncoder自编码器
Mar 09 Python
wx.CheckBox创建复选框控件并响应鼠标点击事件
Apr 25 Python
基于Python log 的正确打开方式
Apr 28 Python
对Python3之进程池与回调函数的实例详解
Jan 22 Python
python ---lambda匿名函数介绍
Mar 13 Python
Django如何实现网站注册用户邮箱验证功能
Aug 14 Python
Python创建数字列表的示例
Nov 28 Python
Pandas实现DataFrame按行求百分数(比例数)
Dec 27 Python
keras:model.compile损失函数的用法
Jul 01 Python
Python3爬虫里关于Splash负载均衡配置详解
Jul 10 Python
python tqdm用法及实例详解
Jun 16 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性能的21种方法介绍
2013/06/25 PHP
PHP的MVC模式实现原理分析(一相简单的MVC框架范例)
2014/04/29 PHP
最简单的jQuery程序 入门者学习
2009/07/09 Javascript
mysql输出数据赋给js变量报unterminated string literal错误原因
2010/05/22 Javascript
JQuery设置文本框和密码框得到焦点时的样式
2013/08/30 Javascript
容易造成JavaScript内存泄露几个方面
2014/09/04 Javascript
JQuery使用$.ajax和checkbox实现下次不在通知功能
2015/04/16 Javascript
jquery实现带渐变淡入淡出并向右依次展开的多级菜单效果实例
2015/08/22 Javascript
详解Javascript中的Object对象
2016/02/28 Javascript
使用Script元素发送JSONP请求的方法
2016/06/12 Javascript
浅谈JavaScript中的分支结构
2016/07/01 Javascript
JavaScript创建对象_动力节点Java学院整理
2017/06/27 Javascript
JS图片轮播与索引变色功能实例详解
2017/07/06 Javascript
解决canvas画布使用fillRect()时高度出现双倍效果的问题
2017/08/03 Javascript
浅析node Async异步处理模块用例分析及常用方法介绍
2017/11/17 Javascript
Vue render深入开发讲解
2018/04/13 Javascript
详解angular路由高亮之RouterLinkActive
2018/04/28 Javascript
Node 升级到最新稳定版的方法分享
2018/05/17 Javascript
mpvue小程序仿qq左滑置顶删除组件
2018/08/03 Javascript
vue 组件之间事件触发($emit)与event Bus($on)的用法说明
2020/07/28 Javascript
解决vue项目中某一页面不想引用公共组件app.vue的问题
2020/08/14 Javascript
python切换hosts文件代码示例
2013/12/31 Python
Python通过DOM和SAX方式解析XML的应用实例分享
2015/11/16 Python
python3中property使用方法详解
2019/04/23 Python
python时间序列按频率生成日期的方法
2019/05/14 Python
Django ORM 聚合查询和分组查询实现详解
2019/08/09 Python
Python列表操作方法详解
2020/02/09 Python
python中查看.db文件中表格的名字及表格中的字段操作
2020/07/07 Python
html5 自定义播放器核心代码
2013/12/20 HTML / CSS
canvas实现扭蛋机动画效果的示例代码
2018/10/17 HTML / CSS
介绍一下结构化程序设计方法和面向对象程序设计方法的区别
2012/06/27 面试题
德育标兵事迹材料
2014/08/24 职场文书
2014年党员自我评议(5篇)
2014/09/12 职场文书
员工工作及收入证明
2014/10/28 职场文书
vue组件的路由高亮问题解决方法
2021/05/11 Vue.js
mysql查询结果实现多列拼接查询
2022/04/03 MySQL