python函数的动态参数之一个星号和两个星号
一、概述
1、python有位置参数、默认参数,这两种是最常用的参数。
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函数的动态参数之一个星号和两个星号相关推荐
- Python函数的动态参数
1. 动态接收位置参数 在参数位置用*表示接受任意参数 def eat(*args):print('我想吃',args)eat('大米饭','中米饭','小米饭') # 收到的结果是一个tuple元祖 ...
- python中自定义函数如何传递动态参数_python 函数的动态参数
1. 函数的动态参数 1. *args 位置参数动态传参 2. **kwargs 关键字参数动态传参 顺序:位置参数, *args, 默认值, **kwargs def func(*args, **k ...
- python函数定义中参数列表里的参数是_python-函数(def)参数 及参数解构 变量 知识整理...
函数 python 函数 由若干语句组成的语句块.函数名称.参数列表构成,他是组织代码的最小单元 完成一定的功能 函数的作用: 结构化编程对代码的最基本的封装,一般按照功能组织一段代码 封装的目的是为 ...
- Python 函数的可变参数(*paramter与**paramter)的使用
Python 函数的可变参数主要有 *paramter与**paramter 可变参数主要有 *paramter的作用 接受任意多个实际参数并放到一个元组中 def people(*people):f ...
- python函数支持哪些参数类型_Python函数的几种参数类型
以下代码均以Python3为基础理解. 初识Python函数 大部分常见的语言如C.Java.PHP.C#.JavaScript等属于C系语言,Python不属于他们中的一员(ruby亦然).在这些语 ...
- python中一个星号(*)与两个星号(**)的作用
python中一个星号(*)与两个星号(**)的作用 目录 python中一个星号(`*`)与两个星号(`**`)的作用 一.一般用法 概述: 1.`*`表示乘法,`**`表示幂 2.`*`表示打包解 ...
- python函数定义中参数列表里的参数是_详解Python函数中参数带星号是什么意思
函数的参数使用除了常规的位置参数和关键字参数外,还支持可变个数的函数参数,这种支持可变个数的参数方法称为参数收集,对应的参数称为收集参数. 一.参数收集的定义 Python的函数支持可变不定数量的参数 ...
- python函数定义时参数相当于占位符_python中函数的参数
形参:定义函数时代表函数的形式参数 实参:调用函数时传入的实际参数 列如: def f(x,y): # x,y形参 print(x, y) f(1, 2) # 1, 2 实参 定义函数时,形参分为普通 ...
- 函数的动态参数和作用域
1. 动态参数 位置参数的动态参数: *args * 在这里表示接收位置参数的动态传参,接收到的是元祖def chi(*food): # 可以传入任意的位置参数 food是参数名,*便是动态参数 pr ...
最新文章
- 【BZOJ】1013 [JSOI2008]球形空间产生器sphere
- Vue + Element UI——对话框式登录框DEMO
- 每天一道LeetCode-----n皇后问题
- muduo学习笔记 - 第五章 高效的多线程日志
- Java 命令行编译项目
- python进阶之装饰器之3如何利用装饰器强制函数上的类型检查
- LeetCode 66. Plus One
- 基于JAVA+SpringMVC+Mybatis+MYSQL的宠物商城管理系统
- SQL Server 2005 中行号的显示,分页
- [ZOJ 3607] Lazier Salesgirl
- QT 设置QDialog显示与隐藏系统按钮(最大小化等)
- git放弃本地修改:
- DBeaver下载安装教程
- 常见问题汇总:FLUENT保存物理量数据
- Vue全家桶 Vuex的详细介绍
- m语言 东华his_M语言
- 最小公倍数和最大公约数的三种算法
- IntelliJ IDEA 2018.3.3版本破解,亲测可用
- 宽屏php模板,宽屏简洁工业网站前端模板
- Code VBA完整代码块,创建Visual Basic源代码
热门文章
- 伯乐在线优秀翻译博客
- 全国计算机等级考试补考时间,全国计算机等级考试如果过不了怎么补考阿,还可以从新报名么...
- 生日小助手V3.1——跨平台多语言的农历生日提醒软件
- office365绘制表格
- 老子终于理解递归了(哈哈哈哈哈哈哈哈哈哈)
- apace poi word在表格单元格里新建表
- WordPress 古腾堡编辑器将如何影响企业?
- mac系统 使用vscode SSH remote 远程连接服务器
- 机器视觉系列(03)---TensorFlow2.3 + win10 + GPU安装
- 超声波液位传感器和投入式液位传器哪个比较精准