详解python函数的参数
详解python函数的参数
一、参数的定义
1、函数的参数在哪里定义
在python中定义函数的时候,函数名后面的括号里就是用来定义参数的,如果有多个参数的话,那么参数之间直接用逗号, 隔开
案列:
# 利用函数的参数,定义一个可以完成任意两个数相加的函数
def add_num(a,b):
c = a + b
print(c)
2、带参数的函数调用:
函数定义了参数,那么调用函数的时候就需要传入参数
add_num(,)
#运行结果
而我们调用函数的时候传入的参数叫做实参,形参是用来接收实参的。

二、参数分类
上面我们说了形参和实参,那么形参和实参在在定义和调用的时候,根据形式不同有可以分为几类,
1、根据实参进行分类
实参:位置参数、关键字参数
1.1、位置参数(未命名参数)
def func(a,b,c):
print(a)
print(b)
print(c) add_num(11,22,33)
#运行结果
11
22
33
上述案列中,的函数的三个形参是按位置接收传入的实参,我们把这样的传参的形式叫做位置参数,
1.2、关键字参数(命名参数)
def func(a,b,c):
print(a)
print(b)
print(c) add_num(11,c=99,b=33)
#运行结果
11
33
99
调用函数函数的时候,实参通过参数名指定传给某个形参,这样的传参形式,我们把它叫做关键字参数
注意:传参的时候先写位置参数,再写命名参数
2、根据形参进行分类
形参可以分为三类:必备参数、默然参数、不定长参数
2.1、必备参数:
在调用函数的时候必须要传的参数
def add(a,b):
c=a+b
print(c) add(11,22)
上面函数中的a,b就是必备参数,在调用的函数的时候必须要传,不然就会报错
2.2、默认参数(缺省参数):
调用函数的时候可以传可以不传,不传就用默认值
def func(a,b,c=99):
print(a)
print(b)
print(c)
func(11,22,33)
print('-----------')
func(55,66)
#运行结果:
11
22
33
---------------
55
66
99
通过上述案列中我们可以发现,第一次调用的时候,我们传入了三个参数,c打印出来的是我们传入的值,第二次只传入了两个参数,这个时候c打印出来的是我们定义的时候给它设置的默认值
注意:带有默认值的参数一定要位于参数列表的最后面。
2.3、不定长参数*args和 **kwargs
调用函数的时候可以传0个或者多个
2.3.1、*args:接收多传入的位置参数,以元祖的形式保存
def func(*args):
print(args)
func(33,44,55,66,77)
func(*(33,44,55,66,77)) #运行结果
(33,44,55,66,77)
(33,44,55,66,77)
*args,args接收的是一个元祖;
调用的时候可以直接传入:func(33,44,55,66,77),
也可以可以先组装list或tuple,再通过*拆包传入:func(*(33,44,55,66,77));
2.3.2、**kwargs:接收多传入的关键字参数,以字典的形式保存
def func(**kwargs):
print(kwargs)
func(e=33,h=44,f=55,d=66,c=77)
func(**{'e':33,'h':44,'d':66,'c':77})
#运行结果
{'e': 33, 'h': 44, 'f': 55, 'd': 66, 'c': 77}
{'e': 33, 'h': 44, 'f': 55, 'd': 66, 'c': 77}
**kwargs,kw接收的是一个字典;
关键字参数既可以直接传入:func(11,22,e=33,h=44,f=55,d=66,c=77),
也可以先组装dict,再通过**拆包传入:func(**{'e':33,'h':44,'d':66,'c':77})。
注意点:使用*args和**kwargs是Python的习惯写法,当然也可以用其他参数名,但最好使用习惯用法。
详解python函数的参数的更多相关文章
- 详解Python函数参数定义及传参(必备参数、关键字参数、默认可省略参数、可变不定长参数、*args、**kwargs)
详解Python函数参数定义及传参(必备参数.关键字参数.默认可省略参数.可变不定长参数.*args.**kwargs) Python函数参数传参的种类 Python中函数参数定义及调用函数时传参 ...
- Python函数可变参数*args及**kwargs详解
初学Python的同学们看到代码中类似func(*args, **kwargs)这样的函数参数定义时,经常感到一头雾水. 下面通过一个简单的例子来详细解释下Python函数可变参数*args及**kw ...
- 举例详解Python中的split()函数的使用方法
这篇文章主要介绍了举例详解Python中的split()函数的使用方法,split()函数的使用是Python学习当中的基础知识,通常用于将字符串切片并转换为列表,需要的朋友可以参考下 函数:sp ...
- 详解Python中re.sub--转载
[背景] Python中的正则表达式方面的功能,很强大. 其中就包括re.sub,实现正则的替换. 功能很强大,所以导致用法稍微有点复杂. 所以当遇到稍微复杂的用法时候,就容易犯错. 所以此处,总结一 ...
- 详解python的装饰器decorator
装饰器本质上是一个python函数,它可以让其它函数在不需要任何代码改动的情况下增加额外的功能. 装饰器的返回值也是一个函数对象.它经常用于有切面需求的场景,比如:插入日志,性能测试,事务处理,缓存, ...
- 详解 Python 的二元算术运算,为什么说减法只是语法糖?
原题 | Unravelling binary arithmetic operations in Python 作者 | Brett Cannon 译者 | 豌豆花下猫("Python猫&q ...
- LESS详解之函数(四)
之前已经为大家介绍了一些LESS函数,大家应该对之前介绍的有所了解了.下面依旧为大家介绍LESS的函数,附加着一些小例子.希望这些有关LESS的函数能在大家编写LESS的时候有所帮助. saturat ...
- Mysql常用show命令,show variables like xxx 详解,mysql运行时参数
MySQL中有很多的基本命令,show命令也是其中之一,在很多使用者中对show命令的使用还容易产生混淆,本文汇集了show命令的众多用法. 详细: http://dev.mysql.com/doc/ ...
- ViewPager 详解(二)---详解四大函数
前言:上篇中我们讲解了如何快速实现了一个滑动页面,但问题在于,PageAdapter必须要重写的四个函数,它们都各有什么意义,在上节的函数内部为什么要这么实现,下面我们就结合Android的API说明 ...
随机推荐
- HHyperledger Fabric 之 TLS (fabric-java-sdk)使用grpcs方式访问fabric
我在很多fabric的技术群中,很多使用javasdk连接fabric的同友,初始的时候很多都没有成功的使用TLS进行区块链交易: 是sdk不支持,还是我们没有找到解决方案? 其实不然,我这里使用的是 ...
- [小米OJ] 9. 移除 K 位得到最小值
思路: 重复k次: 1.找到并且删除第一个 num[i] > num[i+1] 的第i位数字. 2.若删除过程中,序列变成递增序列,则直接删除最后一位. 注意除去字符串头的0 def solut ...
- 《C#从入门到精通(第3版)》目录
C#从入门到精通(第3版)pdf+源码 一.基础知识 1.初识C#及其开发环境 2.开始C#之旅 3.变量与常量 4.表达式与运算符 5.字符与字符串 6.流程控制语句 7.数组与集合 8.属性和方法 ...
- .NET Core CSharp 中级篇 2-1 装箱与拆箱
.NET Core CSharp 中级篇 2-1 本节内容为装箱与拆箱 简介 装箱和拆箱是一个相对抽象的概念.你可以想象一下一堆满载货物的大卡车,他是由许多工人将货物集中堆放装入的,对于我们而言在没有 ...
- 8 NLP-自然语言处理Demo
1 NLP(自然语言处理) 1.1相似度 相似度和距离之间关系: 1.文本相似度: 1) 语义相似.但字面不相似: 老王的个人简介 铁王人物介绍 2) 字面相似.但是语义不相似: 我吃饱饭了 我吃不饱 ...
- 关于java飞机躲炮弹的一些对象说明(带源码)
1.飞机躲炮弹的各种实体类都需要一个画笔将他们画出来 (GameObject) import java.awt.*; public void drawSelf(Graphics g){ g.drawI ...
- EM算法和高斯混合模型GMM介绍
EM算法 EM算法主要用于求概率密度函数参数的最大似然估计,将问题$\arg \max _{\theta_{1}} \sum_{i=1}^{n} \ln p\left(x_{i} | \theta_{ ...
- Currency Exchange POJ1860
Description Several currency exchange points are working in our city. Let us suppose that each point ...
- Oracle SQL常用内置系统函数总结
Oracle数据库 内置系统函数主要分为以下类别:数学函数.字符串函数.日期函数.转换函数.聚合函数.分析聚合函数 一.数学函数 ------------返回数字 abs(n):返回数字 ...
- Java课堂 动手动脑5
1.了解棋盘打印:利用二维数组输出一个15*15的棋盘,棋盘的原素为“+”,就是输出一个横纵都是15个“+”的二维数组,然后再以坐标形式输入棋子“●”,替换掉原来棋盘里的“+”.再编写代码. 电脑随机 ...