龙空技术网

Python编程:如何把元组/字典作为参数传递给函数(附代码)

科技研究员猴哥 646

前言:

当前我们对“python参数传递类”都比较讲究,同学们都想要分析一些“python参数传递类”的相关知识。那么小编在网摘上收集了一些有关“python参数传递类””的相关资讯,希望大家能喜欢,小伙伴们一起来了解一下吧!

学习编程语言的读者对于函数参数的传递应该都不陌生,目前业内已经有多种高级语言允许定义个数可变的参数,这样的好处是可以在调用函数时传入任意多个参数。

python可变参数

当然,Python 也不例外,那么如何在定义函数时支持使用可变参数呢?我们今天就以元组和字典为例给大家详细介绍如何给函数传递可变参数

python函数的可变参数

我们首先来了解下python中函数的形参与实参定义:

形参/实参图解

python中定义的可变参数,又称不定长参数,即函数虽然只有一个形参,但传递给该形参的实际参数个数可以是任意多个,其实现方式主要有以下 两种。

方式一:形参前添加一个 '*'——元组形式

该形式的语法格式如下所示:

def func(a, b, *args)

其中 *args 即为可变参数,args 表示创建一个名为 args 的空元组,该元组可接受任意多个外界传入的非关键字实参。下面我们用代码给大家做演示:

元组形式的可变参数示例

从上图的运行结果可以见:当调用 test() 函数时,books 元组可根据调用是传入的实参来自适应的存储任意数量的字符串。

从 test() 函数的代码来看:参数收集的本质就是一个元组, Python 会将传给 books 参数的多个值收集成一个元组,以元组为对象进行参数传递!感兴趣的读者可以自行测试更多个字符串,是否都能传递给参数books。

方式二:形参前添加两个 '*'——字典形式

该形式的语法格式如下所示:

def func(a, b, *kwargs)

其中 *kwargs即为可变参数,*kwargs表示创建一个名为 kwargs的空字典,该字典可接受任意多个外界传入的非关键字实参。下面我们用代码给大家做演示:

字典形式的可变参数示例

小测验

感兴趣的读者可以自行测试以下的组合可变参数的使用:

# 定义了支持参数收集的函数

def test(x, y, z=3, *books, **scores) :

​print(x, y, z)

​print(books)

​print(scores)

test(1, 2, 3, "我爱" , "Python", 语文=133, 数学=144)

结尾

希望上述内容对于学习python的读者有所帮助,欢迎评论区交流您的意见!最后感谢您的阅读!

感谢

标签: #python参数传递类 #python不定长参数例题 #python不定长参数函数 #python传递元组 #python 传入参数