大家好,我是杨数Tos,这是《从零基础到大神》系列课程的第50篇文章,第三阶段的课程:Python进阶 知识:详细讲解Python中的函数(三)====>函数的参数与返回值(上篇)。
函数是非常重要的内容,在这里,我会用10篇左右的文章详细讲解Python中函数定义与使用的规则。
阅读提醒:建议小白先看一遍:【计算机基础知识】和【Python基础知识】课程,否则你不一定听得懂!
在Python中,函数的参数包括:位置参数、默认参数、关键字参数与不定长参数,它们之间有很大的区别,下面作详细的讲解。
一、Python中函数的形参与实参
1、什么是形参?
形参指的是函数定义时给参数定义的名字,形参只是起到提示作用,用来提示使用都,该传什么类型的参数;
比如说定义了一个函数叫“国家”,这个函数里面有个参数为:“国家的人口”,这里的“国家的人口”就是形参;
个人认为:形参的形字又有形象的意思,这是指让我们给定义参数名字时能够做到见名知意,这样的话,使用都基本一看就明白要传什么参数了。
2、什么是实参?
实参是指在调用函数时实际传入的具体数值;
比如说定义了一个函数叫“国家”,这个函数里面有个参数为:“国家的人口”,然后我传入“14亿”这个数字,这里的“14亿”就是“国家的人口”这个参数的具体化,这就是实参;
把实际的数值或内容传入到函数的参数中,这就是函数的传参。
二、Python中函数的参数类型
1、位置参数
按照从左到右的顺序依次定义的参数叫做位置参数;
位置参数的传参:有几个位置参数必须传放几个实际参数,即:有几个形参就得传几个实参,多一个不行,少一个也不行;
位置形参:按从左到右的顺序依次定义的参数;
位置实参:按从左到右的顺序依次传入的值;
2、关键字参数与默认参数
a. 关键字参数:按照关键字进行传参的参数,按照key = value的形式进行传参的参数;关键字参数可以不按参数的顺序进行传值;
b. 默认参数:在函数定义阶段就定义好默认值的参数;传参时,如果不传入具体的值,则使用定义时的值;
注意:在Python中,默认参数的默认值可以使用所有的数据类型,但是不推荐使用可变的数据类型,因为把可变类型的数据当作默认参数可能会引发一些无法预测的问题;
例如:默认参数中传入一个列表,我们可能在某个地方修改了列表的值,当我们调用参数时,我们就没办法知道函数执行后具体返回的结果是什么。
3、不定长参数
不定长参数又称为可变参数,指的是传入参数时可以同时传入1个或n个值;Python中的不定长参数分为两种:
A. 列表式不定长参数:*args
在定义函数时,如果形参中有带*(注意是一个星号)的参数,表示这个参数是一个可以传入列表或元组的不定长形参;
不管是*x,还是*y,它们都是一样的,都是不定长形参;
B. 字典式不定长参数:**kwargs
在定义函数时,如果形参中有带**(注意是两个星号)的参数,表示这个参数是一个必须传入字典类型数据的不定长形参;
不管是**x,还是**y,它们都是一样的,都是不定长形参;
4、定义参数时的顺序问题
参数顺序问题:
函数名(位置参数,关键字参数/默认参数,*args,**kwargs)
这是Python语法的强制要求,必须按照这种顺序定义形参;
不过,定义函数是否要参数、要几个参数都随你定,但定义好形参之后,就必须按形参的样式传入指定的实参。
以上是本期内容,如果有表达不对的内容,欢迎您的留言、斧正,我们一起天天向上。
感谢您的阅读,您的三连【关注、点赞、收藏】就是对我最大的支持,谢谢!
本文由杨数Tos原创,欢迎关注,带你一起长知识。
领取专属 10元无门槛券
私享最新 技术干货