python中函数传参的多种方式

 更新时间:2024年11月19日 10:28:21   作者:低咒孤书语  
本文主要介绍了Python中函数传参的几种方式,包括位置参数、关键字参数、缺省参数和不定长参数,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

函数的传参方式有多种,位置参数、关键字参数、缺省参数、不定长参数。不过我们最常用的可能是位置参数,接下来让我们了解一下我们的参数

一、位置参数

调用函数时,编译器会将函数的实际参数按照位置顺序依次传递给形式参数,即将第1个实际参数传递给第1个形式参数,将第2个实际参数传递给第2个形式参数,依此类推。

其实也就是传递的参数和定义的参数顺序和个数一样。

举个例子

def xuesheng(name,age,gender):
    print(f'学生的名字是{name},年龄是{age},性别是{gender}')

#这是我们定义函数,所以我们调用时就应该按name、age、gender的顺序来

xuesheng('李华',18,'男')

 输出的结果是

学生的名字是李华,年龄是18,性别是男

二、关键字参数

使用位置参数传值时,如果函数中存在多个参数,记住每个参数的位置及其含义并不是一件容易的事,此时可以使用关键字参数进行传递。关键字参数传递通过“形式参数 = 实际参数”(“键 = 值”)的格式将实际参数与形式参数相关联,根据形式参数的名称进行参数传递。

示例

def xuesheng(name,age,gender):
    print(f'学生的名字是{name},年龄是{age},性别是{gender}')


xuesheng(name = '李华',age = 18,gender = '男')

此时调用时括号里的age = 18,name = '李华',gender = '男'的顺序是可以打乱的,输出结果都不变

学生的名字是李华,年龄是18,性别是男

当我们函数调用时,如果有位置参数时,位置参数必须在关键字参数的前面,但关键字参数之间顺序可以改变,记住位置参数是一一对应的,不要把后面的写前面来了

def xuesheng(name,age,gender):
    print(f'学生的名字是{name},年龄是{age},性别是{gender}')

#两种都有时,前面位置参数只可能是名字,不会是年龄和性别,位置参数是有顺序的
xuesheng('李华',gender = '男',age = '18')

关键字参数作用:可以让函数更加清晰、容易使用,同时也清除了参数的顺序需求

三、缺省参数(也称默认参数)

定义函数时可以指定形式参数的默认值,调用函数时,若没有给带有默认值的形式参数传值,则直接使用参数的默认值;若给带有默认值的形式参数传值,则实际参数的值会覆盖默认值。但要注意的时所有位置参数必须出现在默认参数之前,包括函数定义与调用。

 示例

def xuesheng(name,age,gender = '男'):
    print(f'学生的名字是{name},年龄是{age},性别是{gender}')


xuesheng('李华','18')

 结果与前面还是一样,李华的输出信息没改变,如果我们在默认值那改成女,结果输出就是女(当然也可以在默认为男的时候传值进去,把他改成女)

四、不定长参数

若要传入函数中的参数的个数不确定,可以使用不定长参数。不定长参数也称可变参数,此种参数接收参数的数量可以任意改变。他的类型分为位置传递和关键字传递。

先提前说明一下*args 和 **kwargs 不是特殊的参数,只是编程人员约定的变量名字,args 是 arguments 的缩写,表示位置参数;kwargs 是 keyword arguments 的缩写,表示关键字参数。 其实并不是一定要写成 *args 和 **kwargs ,只有前面的 * (星号)才是必须的

1.位置传递

def test(*args):
    print(args)
    print(type(args))
#调用函数,传入任意个参数
test(1,2,3,'我','是','李华')

不定长参数*args用于接收不定数量的位置参数,调用函数时传入的所有参数被*args接收后以元组形式保存.

#以元组形式存在
(1, 2, 3, '我', '是', '李华')
<class 'tuple'>

2.关键字参数

 传入参数要以“键 = 值”的形式才会被接受

def test(**kwargs):
    print(kwargs)
    print(type(kwargs))
#调用函数,传入任意个参数
test(a = '不',b = '爱',c = '作文')

不定长参数**kwargs用于接收不定数量的关键字参数,调用函数时传入的所有参数被**kwargs接收后以字典形式保存下来。

{'a': '不', 'b': '爱', 'c': '作文'}
<class 'dict'>

小结:

1 位置参数一定要按顺序

2 关键字参数必须以”键 = 值“的形式,如果和位置参数混用,位置参数一定要放前

3 缺省参数默认值一定要放最后

4 不定长参数要分清位置不定长和关键字不定长,前者以元组形式接收,"*"号不能忘,

后者以字典形式接收,"**"不能忘

到此这篇关于python中函数传参的多种方式的文章就介绍到这了,更多相关python 函数传参内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python re的findall和finditer的区别详解

    python re的findall和finditer的区别详解

    这篇文章主要介绍了python re的findall和finditer的区别详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • Python入门教程(七)Python数字类型

    Python入门教程(七)Python数字类型

    这篇文章主要介绍了Python入门教程(七)Python数字类型,Python是一门非常强大好用的语言,也有着易上手的特性,本文为入门教程,需要的朋友可以参考下
    2023-04-04
  • 为Python程序添加图形化界面的教程

    为Python程序添加图形化界面的教程

    这篇文章主要介绍了为Python程序添加图形化界面的教程,图形化界面编程是开发Python本地应用的必备,需要的朋友可以参考下
    2015-04-04
  • Python时区设置方法与pytz查询时区教程

    Python时区设置方法与pytz查询时区教程

    这篇文章主要介绍了Python时区设置的方法和pytz查询时区的方法,大家参考使用吧
    2013-11-11
  • python redis连接 有序集合去重的代码

    python redis连接 有序集合去重的代码

    这篇文章主要介绍了python redis连接 有序集合去重的代码,代码简单易懂,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-08-08
  • Pandas 计算相关性系数corr()方式

    Pandas 计算相关性系数corr()方式

    这篇文章主要介绍了Pandas 计算相关性系数corr()方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07
  • Jupyter Notebook远程登录及密码设置操作

    Jupyter Notebook远程登录及密码设置操作

    今天小编就为大家分享一篇Jupyter Notebook远程登录及密码设置操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  • 一文带你掌握Python自然语言处理库SpaCy

    一文带你掌握Python自然语言处理库SpaCy

    SpaCy是一个非常强大的Python自然语言处理库,它包含了众多强大功能,如词性标注、命名实体识别、依赖关系解析等等,这篇文章的目标是帮助你了解SpaCy的基本功能和如何使用,需要的朋友可以参考下
    2023-07-07
  • 利用Python如何实现K-means聚类算法

    利用Python如何实现K-means聚类算法

    聚类算法有很多种(几十种),K-Means是聚类算法中的最常用的一种,算法最大的特点是简单,好理解,运算速度快,下面这篇文章主要给大家介绍了关于利用Python如何实现K-means聚类算法的相关资料,需要的朋友可以参考下
    2021-08-08
  • Python多继承以及MRO顺序的使用

    Python多继承以及MRO顺序的使用

    这篇文章主要介绍了Python多继承以及MRO顺序的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-11-11

最新评论