关于Python可变参数的理解
Python中函数参数的传递,可以分为以下几种形式:
假设有一个函数,定义如下:
def fn(a,b,c):print(a)print(b)print(c)
1. 按参数所在的位置传递
调用方式:
fn(1,2,3)
这种传递方式,参数的值,完全由参数所在的位置决定,本例中,参数a对应参数值1,参数b对应参数值2,参数c对应参数值3
2. 按关键字传递
所谓的按关键字传递,通俗一点讲,就是在调用函数的时候,把参数名称和参数值作为一个整体,一起传递给它。参数名称必须要与对应的函数参数名称保持一致。
调用方式:
fn(b=3,a=2,c=1)
由于在调用函数的时候,我们指定了参数的名称,此时,参数值跟该参数所在的位置就没用关系了,只跟参数名称对应的值有关。本例中, 参数a对应参数值2,参数b对应参数值3,参数c对应参数值1
3. 位置形式的可变参数
函数的定义需要修改一下,改成如下形式:
def fn(a,b,*c):print(a)print(b)print(c)
看到没有,函数的第三个参数c前面多了一个*号,这个*号表示,我可以接收若干个参数,且参数的形式必须按位置传递。
调用方式:
fn(1,2,3,4,5,6,7)
此时, 参数a对应参数值1,参数b对应参数值2,剩下的参数值3,4,5,6,7全部由参数c接收,接收后,变成一个元组,即(3,4,5,6,7)
4. 关键字形式的可变参数
相对于位置形式的可变参数,函数的定义形式上稍有不同,如下:
def fn(a,b,**c):print(a)print(b)print(c)
仔细比较下,函数的第三个参数c由之前的*c变成了**c,即参数前带了两个*,同样,两个*号也表示可以接收若干个参数,但与一个*号不同的是,两个*号要求的参数传递形式必须是按关键字传递。
调用方式:
fn(1,2,c=3,d=4,e=5)
此时, 参数a对应参数值1,参数b对应参数值2,剩下的参数值3,4,5全部由参数c接收,接收后,变成一个字典类型,如:
{'c':3,'d':4,'e':5}
关于Python可变参数的理解相关推荐
- python 可变参数
python 可变参数 def add1(*data):sum = 0for i in data:sum = sum + ireturn sumprint( add1(1,2,3,4,5) )prin ...
- Java可变参数 Python可变参数 Scala可变参数
Java 可变参数的特点: (1).只能出现在参数列表的最后: (2)....位于变量类型和变量名之间,前后有无空格都可以: (3).调用可变参数的方法时,编译器为该可变参数隐含创建一个数组,在方法体 ...
- Xiaoxia[PG] Python可变参数与标准输出的重定位
Xiaoxia[PG] Python可变参数与标准输出的重定位 Python可变参数与标准输出的重定位 « Xiaoxia[PG] Python可变参数与标准输出的重定位 使用Python的内置函数p ...
- python可变参数_Python 的四种共享传参详解
点击上方"Python数据之道",选择"星标公众号" 精品文章,第一时间送达 作者 | 杨仁聪 编辑 | Lemon 出品 | Python数据之道 本文来自公 ...
- python 可变参数 关键字参数_Python之 可变参数和关键字参数
原标题:Python之 可变参数和关键字参数 刚开始接触 python 的时候,对 python 中的 *wargs (可变参数) 和 **kwargs (关键字参数)的理解不是很透彻,看了一下 &l ...
- python可变参数函数二阶导数公式_python中函数的可变参数
简介 INTRODUCTION一.[其实已经用过]可变参数 二.可变参数+普通参数 结合用法1 三.知识要点总结强调 知识回顾: 1.函数关键字参数 2.函数的参数的默认值.必须从右边写到左边. 一. ...
- python可变参数报错_Python之可变参数,*参数,**参数,以及传入*参数,进行解包...
1.定义了一个需要两个参数的函数 def print_str(first, second): print first print second if __name__ == "__main_ ...
- Python可变参数
在Python函数中,还可以定义可变参数.顾名思义,可变参数就是传入的参数个数是可变的,可以是1个.2个到任意个,还可以是0个.以数学题为例子,给定一组数字a,b,c--,请计算a2 + b2 + c ...
- python可变参数和关键字参数位置_python的位置参数、默认参数、关键字参数、可变参数区别...
一.位置参数 调用函数时根据函数定义的参数位置来传递参数. #!/usr/bin/env python # coding=utf-8def print_hello(name, sex): sex_di ...
最新文章
- 服务器租用之服务器带宽情况分析
- jquery实现上传图片及图片大小验证、图片预览效果代码
- 在Ubuntu桌面上显示我的电脑等图标
- EMNLP2020文档级关系抽取模型GAIN 论文Double Graph Based Reasoning for Document-level Relation Extraction
- golang的https服务器
- [e袋购APP]高校物业管理的特点
- C++驱动海康威视摄像头
- 2022年机器视觉综述论文
- win7电脑桌面背景异常
- uniapp支付打开支付宝app进行付款
- Kd-tree原理与实现
- with as的update写法
- 小白的模拟电路初步学习20日打卡(14)
- nacis服务注册原理_Nacos 服务注册的原理
- Nat Micro:房刚组揭示细菌表观遗传调节艰难梭菌孢子形成
- 高通PC(笔记本电脑)端骁龙850详细参数介绍
- Qt实现表格控件-支持多级列表头、多级行表头、单元格合并、字体设置等
- EMVTag系列8《IC卡公钥证书》
- Windows 7 系统服务优化
- 怎样取消悬浮的窗口?
热门文章
- ENJ2010 IGBT便携式测试仪
- GC8548双通道H桥电机驱动芯片
- hive函数——greatest、least 多列取最大最小值
- SpringCloud学习笔记02-服务提供者与服务消费者
- cmd获取python返回值
- WQS二分 学习笔记 + 例题([BZOJ2654]Tree、[联考2018]林克卡特树)
- 使用vue-cli结合express获取mongodb里面的数据
- Conda配置国内镜像源
- #深度解析# 深度学习中的SGD、BGD、MBGD、Momentum、NAG、Adagrad、Adadelta,RMSprop、Adam优化器
- Android preference API使用总结