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常规方法实现数组的全排列
Mar 17 Python
python字符串过滤性能比较5种方法
Jun 22 Python
Python实现的多进程和多线程功能示例
May 29 Python
详解基于django实现的webssh简单例子
Jul 17 Python
python3.5绘制随机漫步图
Aug 27 Python
解决python执行不输出系统命令弹框的问题
Jun 24 Python
pycharm重命名文件的方法步骤
Jul 29 Python
python3实现单目标粒子群算法
Nov 14 Python
Python面向对象之多态原理与用法案例分析
Dec 30 Python
nginx搭建基于python的web环境的实现步骤
Jan 03 Python
python多线程和多进程关系详解
Dec 14 Python
python中对列表的删除和添加方法详解
Feb 24 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
回首过去10年中最搞笑的10部动漫,哪一部让你节操尽碎?
2020/03/03 日漫
php 文本文件的读取效率
2012/02/10 PHP
php和mysql中uft-8中文编码乱码的几种解决办法
2012/04/19 PHP
php正则表达式使用的详细介绍
2013/04/27 PHP
PHP实现的蚂蚁爬杆路径算法代码
2015/12/03 PHP
PHP使用DOM和simplexml读取xml文档的方法示例
2017/02/08 PHP
PHP去除字符串最后一个字符的三种方法实例
2017/03/01 PHP
Yii2.0多文件上传实例说明
2017/07/24 PHP
在chrome中window.onload事件的一些问题
2010/03/01 Javascript
javascript中的onkeyup和onkeydown区别介绍
2013/04/28 Javascript
jquery通过visible来判断标签是否显示或隐藏
2014/05/08 Javascript
Js中使用hasOwnProperty方法检索ajax响应对象的例子
2014/12/08 Javascript
基于jQuery和CSS3制作数字时钟附源码下载(jquery篇)
2015/11/24 Javascript
angular源码学习第一篇 setupModuleLoader方法
2016/10/20 Javascript
实例解析jQuery中如何取消后续执行内容
2016/12/01 Javascript
JS仿Base.js实现的继承示例
2017/04/07 Javascript
基于Vue实现页面切换左右滑动效果
2020/06/29 Javascript
深入浅析vue组件间事件传递
2017/12/29 Javascript
JavaScript如何对图片进行黑白化
2018/04/10 Javascript
CKEditor4配置与开发详细中文说明文档
2018/10/08 Javascript
Vue实现微信支付功能遇到的坑
2019/06/05 Javascript
Python中的多行注释文档编写风格汇总
2016/06/16 Python
Python实现将罗马数字转换成普通阿拉伯数字的方法
2017/04/19 Python
Python对象类型及其运算方法(详解)
2017/07/05 Python
Python进度条实时显示处理进度的示例代码
2018/01/30 Python
使用python进行拆分大文件的方法
2018/12/10 Python
伦敦剧院门票:From The Box Office
2018/06/30 全球购物
俄罗斯披萨、寿司和面食送货到家服务:2 Берега
2019/12/15 全球购物
入党申请书自我鉴定
2013/10/12 职场文书
促销活动策划方案
2014/01/12 职场文书
2014年置业顾问工作总结
2014/11/17 职场文书
校园安全学习心得体会
2016/01/18 职场文书
《黄道婆》教学反思
2016/02/22 职场文书
解决Tkinter中button按钮未按却主动执行command函数的问题
2021/05/23 Python
Java9新特性之Module模块化编程示例演绎
2022/03/16 Java/Android
Java 死锁解决方案
2022/05/11 Java/Android