python函数中的不定长参数
python自定义函数中有两中不定长参数,第一种是*name,第二种是**name。加了星号 * 的参数会以元组(tuple)的形式导入,存放所有未命名的变量参数。加了两个星号 ** 的参数会以字典的形式导入。
第一种形式的不定长参数,在传入额外的参数时可以不用指明参数名,直接传入参数值即可,第二种因为返回的是字典,所以传入时需要指定参数名。
下面是两个简单的栗子:
‘ *name ’形式:
def funA(a, b, *args):
print(a)
print(b)
print(args) funA(1, 2, 3, 5, 6, 7) 输出如下:
1
2
(3, 5, 6, 7)
可以看出,前1和2这两个数据传给了a和b,而剩下的5,6,7三个数都以元祖的形式存在了args这个参数中,所以在第四行输出args时,输出的是个元组,当然也可以像访问元组那样输出args中的某一个值,如下:
def funA(a, b, *args):
print(a)
print(b)
print(args[0]) 输出如下:
1
2
3
这就只输出了args这个元祖中的第一个值。
‘ **name ’形式:
def funB(a, b, **vardict):
print(a)
print(b)
print(vardict)
print(vardict['l']) funB(1, 2, l=3, m=4) 输出结果如下:
1
2
{'l': 3, 'm': 4}
3
可以看出,前1和2这两个数据传给了a和b,而 l 和 m 这两个参数被以字典的形式存在的vardict中,所以第四行输出的是一个字典,第五行只输出了vardict这个字典中的一个值。
个人觉得第二种形式要比第一种形式更好用。想象一下这个场景,在填写资料时,有些选项不是必填项,那么怎么判断用户有没有填写呢?这个时候这种形式的不定长参数就发挥作用了。
-------------------------------------------------------------------------------------------------------------------------------------------------------还在努力中的小白,若文章有错误,大佬们随时指正。嘻嘻------------------------------------------------------------------------------------------------------------------------------------------------------
python函数中的不定长参数的更多相关文章
- python——装饰器(不定长参数,闭包,装饰器)示例
def func(functionName): print("正在装饰") def func_in(*args, **kargs): print("------func_ ...
- Python装饰器AOP 不定长参数 鸭子类型 重载(三)
1 可变长参数与关键字参数 *args代表任意长度可变参数 **kwargs代表关键字参数 用*args和**kwargs只是为了方便并没有强制使用它们. 缺省参数即是调用该函数时,缺省参数的值若未被 ...
- python-在定义函数时,不定长参数中,默认值参数不能放在必选参数前面
如果一个函数的参数中含有默认参数,则这个默认参数后的所有参数都必须是默认参数,否则会报错:SyntaxError: non-default argument follows default argum ...
- python不定长参数 *argc,**kargcs(19)
在 python函数的声明和调用 中我们简单的了解了函数的相关使用,然而在函数传递参数的时候,我们埋下了一个坑,关于不定长参数的传递我们还没有讲,今天这篇文章主要就是讲解这个问题. 一.函数不定长参数 ...
- Python函数中参数类型
在学习Python函数的时候,函数本身的定义和调用并不是很复杂,但是函数的参数类型和用法的确有些复杂.在此做一个小结,加深理解. Python参数的定义 负责给函数提供一些必要的数据或信息,以保证函数 ...
- python函数中的参数(关键字参数,默认参数,位置参数,不定长参数)
默认参数:定义函数的时候给定变量一个默认值. def num(age=1): 位置参数:调用函数的时候根据定义函数时的形参位置和实参位置进行引用. 关键字参数:如果定义的函数中含有关键字参数,调用函数 ...
- python中函数的不定长参数
例1: #定义一个含有不定长参数的函数,本例第三个参数*args def sum_nums(a,b,*args): print('_'*30) print(a) print(b) print(args ...
- 详解Python函数参数定义及传参(必备参数、关键字参数、默认可省略参数、可变不定长参数、*args、**kwargs)
详解Python函数参数定义及传参(必备参数.关键字参数.默认可省略参数.可变不定长参数.*args.**kwargs) Python函数参数传参的种类 Python中函数参数定义及调用函数时传参 ...
- Python 不定长参数、全局变量、局部变量 day4
一.不定长参数 在函数定义中,经常会碰到*args 和**kwargs作为参数. 事实上在函数中,*和**才是必要的,args和kwargs可以用其他名称代替 *args 是指不定数量的非键值对参数. ...
随机推荐
- CSP2019-S1 游记
估分 83 分qwq 上午照常起床,先跑去学校考了一场化学(黑人问号),然后8:30从学校开溜. 8:50到考点,发现淮安S组只有两个考场... 在考点外遇到一群 金湖中学 的. 不怕了,有水军帮忙垫 ...
- python实现语音信号处理常用度量方法
信噪比(SNR) 有用信号功率与噪声功率的比(此处功率为平均功率),也等于幅度比的平方 $$SNR(dB)=10\log_{10}\frac{\sum_{n=0}^{N-1}s^2(n)}{\sum_ ...
- word设置标题1,标题2,标题3项目编号联动
word经常要按层级显示标题,并且标题样式之间要联动 如: 设置办法: word内鼠标右键 2.选择项目符号和编号 3.选择一个样式并自定义 将级别链接到样式.选择对应标题样式即可实现联动.
- golang module 在 spacemcs 中的配置
概述 golang 官方的包管理从 1.11 版本就开始支持了, 之前尝试了几次, 效果都不理想, 就一直用 dep 来管理 package. 最近 1.13 版本发布了, 使用 go module ...
- WIN7快速打开hosts方法
WIN7快速打开hosts方法 1直接运行C:\Windows\System32\drivers\etc\hosts 浏览选择notepad++打开即可 2打开notepad++打开 C:\Windo ...
- gperf heap profiler
前言 gperf tools有很多功能,其中有一个heap profiler,可按函数级别定位分配内存的累积量 原理 gperf tools需要替换libc的malloc库,替换为tcmalloc:t ...
- Kubernetes Pod 资源限制
Kubernetes Pod 资源限制 官方文档:https://kubernetes.io/docs/concepts/configuration/manage-compute-resources- ...
- 【转载】百度百科:FusionCube超融合
[转载]百度百科:FusionCube超融合 华为FusionCube融合基础设施一体机(Huawei FusionCube Converged Infrastructure)是华为公司IT产品线云计 ...
- Linux安装centos,网络net8模式ping不通www.baidu.com或者ping不通主机
1.Linux安装centos,网络net8模式ping不通www.baidu.com或者ping不通主机. 我使用的是net8模式.配置如下所示,保证可以ping通www.baidu.com或者pi ...
- Docker入门学习及其安装
1.Docker是一个开源的应用容器引擎,基于Go语言并遵从Apache2.0协议开源.Docker可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布到任何流行的Linux机器 ...