龙空技术网

python 可变参数简介

黄毛丫头成长记 64

前言:

现在各位老铁们对“python的可变参数”大致比较注意,你们都想要分析一些“python的可变参数”的相关知识。那么小编在网摘上收集了一些关于“python的可变参数””的相关内容,希望朋友们能喜欢,看官们快快来学习一下吧!

Python中可变参数是函数传参的重点。我们经常会在函数定义时,看到*args,**kwargs,这2个类型的参数就是可变参数,那么它们分别代表什么意思呢?

1.*参数收集所有未匹配的位置参数组成一个tuple对象,局部变量args指向此tuple对象;

2.**参数收集所有未匹配的关键字参数组成一个dict对象,局部变量kwargs指向此dict对象.

例如,以下是可变参数在函数中的定义:

可变参数的定义

作为函数调用时:

1.*参数用于解包tuple对象的每个元素,作为一个一个的位置参数传入到函数中;

2.**参数用于解包dict对象的每个元素,作为一个一个的关键字参数传入到函数中;

例如:

*可变参数的意思

**可变参数的意思

以上是基础概念的解释,那么我们接下来可以从几个实例中来更加深入的了解可变参数的用法:

例如:

定义一个函数

如果我们只传1个参数,会怎样呢?

传1个参数

输出结果:

报错信息

可见参数匹配上是有问题的,那么如何解决这个问题呢?我们可以用可变参数:

传1个参数

此时我们再传一个参数调用print_str()函数,看看这次发生什么?

输出结果:

输出结果包含一个tuple

我们可以看到这次它不再报错,传入的第一个字符串参数"hello"打印出来了,没有传入参数的*second则打印的是一个tuple对象的字符串表示形式,即一个括号"()" 。 注意:()表示含有0个元素的tuple对象!

那么关于**kwargs的用法,大家知道吗?今天就讲到这里,大家可以思考下**kwargs的用法,我们下次再分享!

标签: #python的可变参数 #python可变函数参数