Python中根据函数的输入参数以及是否有返回值可分为四种函数:

1.无参数无返回值

2.有参数无返回值

3.无参数有返回值

4.有参数无返回值

Python 中参数传递有下列五种方式;

1.位置传递

2.关键字传递

3.默认值传递

4.不定参数传递(包裹传递)

5.解包裹传递

一.位置传递

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

输出:

1 6

二.关键字传递

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

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

输出:

6

三 参数默认值传递

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

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

输出:

1 6

四 包裹传递

在定义函数时,我们有时候并不知道调用的时候会传递多少个参数。这时候,包裹(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),这就是包裹位置传递。

五.解包裹传递

#Python学习交流群:711312441
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学习:传递参数的多种方式相关推荐

  1. python 函数传递参数的多种方法

    python中函数根据是否有返回值可以分为四种:无参数无返回值,无参数有返回值,有参数无返回值,有参数有返回值. Python中函数传递参数的形式主要有以下五种,分别为位置传递,关键字传递,默认值传递 ...

  2. React传递参数的多种方式

    最常见的就是父子组件之间传递参数 父组件往子组件传值,直接用this.props就可以实现 在父组件中,给需要传递数据的子组件添加一个自定义属性,在子组件中通过this.props就可以获取到父组件传 ...

  3. Python学习之参数(一)

    Python学习之参数(一) 文章目录 Python学习之参数(一) 参数的传递 避免可变参数的修改 参考资料 参数的传递 所有的参数实际上都是通过指针进行传递的.作为参数被传递的对象从来不自动拷贝. ...

  4. 参数匹配模型——Python学习之参数(二)

    参数匹配模型--Python学习之参数(二) 文章目录 参数匹配模型--Python学习之参数(二) 位置参数:从左至右进行匹配 关键字参数:通过参数名进行匹配 默认参数:为没有传入值的参数定义参数值 ...

  5. ios页面间传递参数四种方式

    ios页面间传递参数四种方式 1.使用SharedApplication,定义一个变量来传递. 2.使用文件,或者NSUserdefault来传递 3.通过一个单例的class来传递 4.通过Dele ...

  6. 参数匹配顺序——Python学习之参数(三)

    参数匹配顺序--Python学习之参数(三) 文章目录 参数匹配顺序--Python学习之参数(三) 函数参数匹配表 参数匹配顺序 keyword-only 参数的位置 参考资料 这篇博文是对上一篇博 ...

  7. springboot获取多个请求参数_springboot获取URL请求参数的多种方式

    1.直接把表单的参数写在Controller相应的方法的形参中,适用于get方式提交,不适用于post方式提交. /** * 1.直接把表单的参数写在Controller相应的方法的形参中 * @pa ...

  8. python脚本传递参数

    argparse基本用法 argparse 是python自带的命令行参数解析包,可以用来方便地读取命令行参数.它的使用也比较简单. 1.基本框架 下面是采用argparse从命令行获取用户名,该py ...

  9. ride传递参数是unicode方式解决方法

    今天做自动化发现这个getaddrinfo() argument 2 must be integer or string问题,看来是传递参数问题,打印后发现ride传递过来得的确是unicode方式, ...

最新文章

  1. C++11中头文件thread的使用
  2. 游标、事务并发和锁三者之间的那点事
  3. 一文深入了解 Redis 内存模型,Redis 的快是有原因的!
  4. Spring boot的Webjars
  5. 各种震撼的慢镜头,奇怪的知识又增加了!​
  6. E. Beautiful Subarrays(思维 01 trie 树)
  7. 超详细!上线一个机器学习项目你需要哪些准备?
  8. python大写字母怎么表示_python – 如何在字符串中搜索大写字母并返回带有和不带大写字母的单词列表...
  9. 纯种C++解析unicode文件
  10. 设计模式入门-模板模式
  11. 72000oracle,oracle 使用入门到放弃errorCode 1017, state 72000 java.sql.SQLException: ORA-01017:...
  12. 3DES加密解密方法
  13. 计算机的色彩在哪调整w10,win10电脑显示器颜色不对如何调整
  14. MIR Flickr图像数据集
  15. 如何优化关键词搜索排名(提升关键词排名的方法)
  16. 图片报道:2008年12月4日夜晚,暴风雪突袭烟台(下)
  17. 盘点2015年英特尔旧金山IDF峰会上的黑科技
  18. 武义县城区棚户区改造溪南区块安置房建设项目(标段一)电能管理系统的研究及应用
  19. Node安装以及cnpm安装
  20. python中sub是什么意思_在Python中split(),sub(),subn()功能?

热门文章

  1. 支付宝蚂蚁花呗的坏账率只有1% ,为什么大家不敢欠马云的钱?
  2. 【转】操作无法完成.键入的打印机名不正确
  3. 【独家打造】DOGX wallet钱包注册下载以及量化收益操作教程
  4. iphone导出照片到pc_如何将照片从任何计算机导出到iPhone或iPad
  5. 迅捷文字转语音软件使用方法介绍
  6. Linux学习——进程间通信
  7. java poi createcell_创建空白POI(java初学者)
  8. 微信小程序的开发框架
  9. 细数Android开发者的艰辛历程,2年以上经验必看
  10. mysql索引 include_MySql索引详解