1、函数的参数在哪里定义

在python中定义函数的时候,函数名后面的括号里就是用来定义参数的,如果有多个参数的话,那么参数之间直接用逗号, 隔开

案列:

2、带参数的函数调用:

函数定义了参数,那么调用函数的时候就需要传入参数

上面的案列中,我们定义函数的时候在函数名后面的括号里定义的参数叫做形参。

而我们调用函数的时候传入的参数叫做实参,形参是用来接收实参的。

参数的分类

上面我们说了形参和实参,那么形参和实参在在定义和调用的时候,根据形式不同有可以分为几类。

1、根据实参进行分类

实参:位置参数、关键字参数

1.1、位置参数(未命名参数)

上述案列中,的函数的三个形参是按位置接收传入的实参,我们把这样的传参的形式叫做位置参数。

1.2、关键字参数(命名参数)

调用函数函数的时候,实参通过参数名指定传给某个形参,这样的传参形式,我们把它叫做关键字参数。

注意:传参的时候先写位置参数,再写命名参数

2、根据形参进行分类

 

形参可以分为三类:必备参数、默然参数、不定长参数

 

2.1、必备参数:

在调用函数的时候必须要传的参数

上面函数中的a,b就是必备参数,在调用的函数的时候必须要传,不然就会报错。

2.2、默认参数(缺省参数):

调用函数的时候可以传可以不传,不传就用默认值

通过上述案列中我们可以发现,第一次调用的时候,我们传入了三个参数,c打印出来的是我们传入的值。

第二次只传入了两个参数,这个时候c打印出来的是我们定义的时候给它设置的默认值

 

注意:带有默认值的参数一定要位于参数列表的最后面。

2.3、不定长参数*args和 **kwargs

调用函数的时候可以传0个或者多个

◆ *args:接收多传入的位置参数,以元祖的形式保存

*args,args接收的是一个元祖;

调用的时候可以直接传入:

func(11,22,33,44,55,66,77),

也可以可以先组装list或tuple,

再通过*拆包传入:

func(*(11,22,33,44,55,66,77));

◆ **kwargs:接收多传入的关键字参数,以字典的形式保存

**kwargs,kw接收的是一个字典;

关键字参数既可以直接传入:

func(11,22,e=33,h=44,f=55,d=66,c=77)

也可以先组装dict

再通过**kw传入:

func(**{'e':33,'h':44,'d':66,'c':77})

注意点:使用*args和**kwargs是Python的习惯写法,当然也可以用其他参数名,但最好使用习惯用法。

来源: https://mp.weixin.qq.com/s/p_L94CGTQdethFdGYZePBw

 

 

python函数 传参的多种方式 解读的更多相关文章

  1. 悉数 Python 函数传参的语法糖

    TIOBE排行榜是程序开发语言的流行使用程度的有效指标,对世界范围内开发语言的走势具有重要参考意义.随着数据挖掘.机器学习和人工智能相关概念的风行,Python一举收获2018年年度语言,这也是Pyt ...

  2. python函数传参是传值还是传引用?

    首先还是应该科普下函数参数传递机制,传值和传引用是什么意思? 函数参数传递机制问题在本质上是调用函数(过程)和被调用函数(过程)在调用发生时进行通信的方法问题.基本的参数传递机制有两种:值传递和引用传 ...

  3. Shell传参的多种方式

    Shell 传参的多种方式 使用$1 $2 这种类似占位符的方式 # 命令行调用 start.sh 8080 9090 # 脚本中获取 port1=$1 # 8080 port2=$2 # 9090 ...

  4. python函数传参和返回值注意事项

    函数传参 空参数 定义函数时括号里面没有形参,调用时不用传参. def func(): print('null para.') # 调用 func() 位置传参 规定形参的数量,调用时必须传递相同数量 ...

  5. pytest用例传参的多种方式

    1.接收外部传参 *函数获取需要的参数,再传入 *函数获登录信息,直接使用 2.其它方式传参 *依据dict取值 *tuple数组

  6. python函数--传参

    一.位置参数 二.关键字参数 三.默认参数 四.任意数量的位置参数: 1. *x 2. 传入的多个参数,最终合并成一个元组 3. 之后的参数必须用关键字参数 五.任意数量的关键字参数 1. **x 2 ...

  7. 『Python × C++』函数传参机制学习以及对比

    一.Python函数传参 在python中,函数传参实际上传入的是变量的别名,由于python内在的变量机制(名称和变量值相互独立),只要传入的变量不可变(tuple中的元素也要是不可变的才行),那么 ...

  8. python中给函数传参是传值还是传引用

    首先还是应该科普下函数参数传递机制,传值和传引用是什么意思? 函数参数传递机制问题在本质上是调用函数(过程)和被调用函数(过程)在调用发生时进行通信的方法问题.基本的参数传递机制有两种:值传递和引用传 ...

  9. 函数传参传的是啥的思考【java Python】

    今天看<java 核心 卷1>的时候,作者提到了函数传参的问题,他提到,java传参,传的是值,而不是引用,然后,函数将要传的实参的值(如果实参是基本数据类型,那么就是值.如果实参是对象, ...

随机推荐

  1. C# NPOI使用

    HSSFWorkbook workbook = new HSSFWorkbook(); HSSFSheet sheet = workbook.CreateSheet( "Sheet1&quo ...

  2. hdu2509 Be the Winner 博弈

    Let's consider m apples divided into n groups. Each group contains no more than 100 apples, arranged ...

  3. 找DEV,欢迎挑战高薪 --方向:互联网金融,地点广州

    http://kaolalicai.cn/#/join 企业文化 加入财略 = 进取!自由!快乐 Get things done,坚持,进取 学习型企业,员工培训,交互学习 人性化管理,气氛和谐,快乐 ...

  4. day 06云计算的三种服务模式:IaaS,PaaS和SaaS

    云计算的三种服务模式:IaaS,PaaS和SaaS ”云服务”现在已经快成了一个家喻户晓的词了.如果你不知道PaaS, IaaS 和SaaS的区别,那么也没啥,因为很多人确实不知道. “云”其实是互联 ...

  5. shell基础入门(一)

    //获取输入内容 #!/bin/bash echo "What is your name?" read PERSON read -p "who are you name: ...

  6. MySQL Transaction--Sprint中访问只读从库的设置

    问题描述 按照正常情况,从库上只执行查询,但在从库上发现有长时间未提交的事务,联系开发后确认程序的配置问题. 解决办法 修改前代码为(基于spring框架):  修改后的代码为:  Spring事务中 ...

  7. RTMP、RTSP、HTTP可用的地址

    香港卫视:  rtmp://live.hkstv.hk.lxdns.com/live/hks1 香港财经,rtmp://202.69.69.180:443/webcast/bshdlive-pc 韩国 ...

  8. 收藏一篇 Python 文本框操作命令

    原文地址:https://www.cnblogs.com/onlyfu/archive/2013/03/07/2947473.html 属性(Options) background(bg) borde ...

  9. MySQL5.6新特性之Multi-Range Read

    一 介绍    MySQL 5.6版本提供了很多性能优化的特性,其中之一就是 Multi-Range Read 多范围读(MRR) , 它的作用针对基于辅助/第二索引的查询,减少随机IO,并且将随机I ...

  10. js过滤输入的emoji表情

    因为emoji表情是Unicode编码, 在某些流浪器上会显示乱码, 有的数据库字节不够也无法存储, 网上有很多解决此类问题的办法, 最简单的莫过于将emoji表情替换成文本, 比如 [表情][表情] ...