python函数的动态参数之一个星号和两个星号
2021/8/22 11:06:16
本文主要是介绍python函数的动态参数之一个星号和两个星号,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
一、概述
1、前文已经提过位置参数、默认参数,这两种是最常用的参数。
2、动态参数即不限定参数个数,以一种动态的方式接受传参的个数。
3、python的动态参数有两种,分别是 ‘ *args ’ 和 ‘ **kwargs ’ 。他们区别在于是一个星号还是两个星号,而不是 args 和kwargs ,实际上定义成 ‘ *cat ’ 和 ‘ **dog’ 也是可以的,只是按照约定俗称的写法,通常写成 ‘ *args ’ 和 ‘ **kwargs ’。
4、注意:动态参数必须放在所有位置参数和默认参数后面!
二、一个星号
1、一个星号的动态参数表示接收任意个参数,调用时会将实际参数打包成一个元组传入。如果参数是个列表,则会将整个列表当成一个参数传入。
如图所示,动态参数传入的4,5,6会被打包成一个元组传入到函数内部。
2、如果当传入的动态参数是一个列表,则会将整个列表当成一个参数传入。
如图,传入的[4,5,6]被当成元组的中的一个元素传入了。如果想把列表也当成当个元素逐个传入呢?可以使用*传参!如下图所示。
在传参是添加一个*,就可将列表中的元素逐个传入。实际上所有序列类型的元素都可以是用这种方式传递,比如字符串、元组、字典等。
3、一个星号的特殊情况!
当一个星号的动态参数位于n个默认参数后面时,python会自动将一个星号的动态参数的前n个赋值为默认参数。
如图所示,默认将动态参数的4,5赋值给了c、d,这是python内部的传参规则。
三、两个星号
1、两个星号的动态参数,会将传入的参数打包成字典传给函数。
2、而如果当传入的动态参数是一个字典时,程序会报错。为了解决这个问题,可以使用两个*将字典值逐个传入。
3、两个星号的动态参数必须置于一个星号动态参数的后面!
四、万能参数 & 关键字参数
1、一个星号的动态参数 + 两个星号的动态参数 = 万能参数!
2、万能参数可能不受参数的个数限制,在灵活的同时也带了一些麻烦。
例如,我们在招聘的时候要求必须传入‘age’这个参数,就可以使用关键字参数进行限定。关键字参数使用 * 进行区别,即 * 号后面的内容都是关键字参数。
注意 :关键参数在调用时必须船用参数名称。
3、对于动态参数里面的关键参数,不需要加 * ,直接在动态参数后面限定即可。
注意:关键参数必须要传,但是可以穿空缺值。下面这种方式可以。
但下面这种方式就会报错。
这篇关于python函数的动态参数之一个星号和两个星号的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-14获取参数学习:Python编程入门教程
- 2024-11-14Python编程基础入门
- 2024-11-14Python编程入门指南
- 2024-11-13Python基础教程
- 2024-11-12Python编程基础指南
- 2024-11-12Python基础编程教程
- 2024-11-08Python编程基础与实践示例
- 2024-11-07Python编程基础指南
- 2024-11-06Python编程基础入门指南
- 2024-11-06怎么使用python 计算两个GPS的距离功能-icode9专业技术文章分享