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. 使用docker部署mysql 并持久化到宿主机本地
  2. 专访趋势科技CEO陈怡桦:病毒行业需要反省
  3. servlet实现http通信基础
  4. 4che3 scu发送超时设置_Redis实现订阅发布与批量发送短信
  5. 【Zabbix】yum方式安装zabbix
  6. 校园导游java版,校园导游系统Word版
  7. 2.AsyncQueryHandler、内容提供者
  8. Linux 不同方法查看进程消耗CPU IO 等
  9. Linux设备驱动开发入门之——hello驱动
  10. 【春节旅游攻略】南京周边出发,小众又好玩的景点推荐
  11. 热门招聘丨 XTransfer史上最全产品技术岗位公开招聘
  12. BUUCTF-PWN刷题记录25(IO file attack)
  13. 洛谷 p2404 自然数拆分问题
  14. 架构师多如过江之鲫,但你真的了解架构师这个工种吗?
  15. 物联网开发笔记(77)- 使用Micropython开发ESP32开发板之使用MAX7219驱动控制8x8LED点阵模块(续)
  16. 什么是骨传导耳机?骨传导耳机好不好,看完这些你就知道了!
  17. Python:使用f-string保留小数点位数
  18. 【python】本地音乐播放器(PyQt5界面版)
  19. Win10系统D盘满了怎么清理隐藏的垃圾文件?
  20. maxima 学习笔记(coeff 函数的应用)

热门文章

  1. 肽聚糖( peptideglycan)是细菌细胞壁的刚性结构的多糖成分
  2. [linux]shell中单引号和双引号区别
  3. 李宁地胶网柱球网裁判椅价格表
  4. laravel4.2 连接mysql_Laravel 4.2 升级 Laravel 5.0 攻略
  5. 阿里云和腾讯云哪个好点(学生党用)?
  6. html怎么让导航栏背景透明,小程序导航栏背景透明
  7. 算法推歌20年:从Pandora、Spotify到QQ音乐、网易云音乐
  8. jxls导出excel,合并单元格的两种方式
  9. ubuntu下搭建Discuz
  10. 华为通过ADB取消系统更新