一、概述

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函数的动态参数之一个星号和两个星号相关推荐

  1. Python函数的动态参数

    1. 动态接收位置参数 在参数位置用*表示接受任意参数 def eat(*args):print('我想吃',args)eat('大米饭','中米饭','小米饭') # 收到的结果是一个tuple元祖 ...

  2. python中自定义函数如何传递动态参数_python 函数的动态参数

    1. 函数的动态参数 1. *args 位置参数动态传参 2. **kwargs 关键字参数动态传参 顺序:位置参数, *args, 默认值, **kwargs def func(*args, **k ...

  3. python函数定义中参数列表里的参数是_python-函数(def)参数 及参数解构 变量 知识整理...

    函数 python 函数 由若干语句组成的语句块.函数名称.参数列表构成,他是组织代码的最小单元 完成一定的功能 函数的作用: 结构化编程对代码的最基本的封装,一般按照功能组织一段代码 封装的目的是为 ...

  4. Python 函数的可变参数(*paramter与**paramter)的使用

    Python 函数的可变参数主要有 *paramter与**paramter 可变参数主要有 *paramter的作用 接受任意多个实际参数并放到一个元组中 def people(*people):f ...

  5. python函数支持哪些参数类型_Python函数的几种参数类型

    以下代码均以Python3为基础理解. 初识Python函数 大部分常见的语言如C.Java.PHP.C#.JavaScript等属于C系语言,Python不属于他们中的一员(ruby亦然).在这些语 ...

  6. python中一个星号(*)与两个星号(**)的作用

    python中一个星号(*)与两个星号(**)的作用 目录 python中一个星号(`*`)与两个星号(`**`)的作用 一.一般用法 概述: 1.`*`表示乘法,`**`表示幂 2.`*`表示打包解 ...

  7. python函数定义中参数列表里的参数是_详解Python函数中参数带星号是什么意思

    函数的参数使用除了常规的位置参数和关键字参数外,还支持可变个数的函数参数,这种支持可变个数的参数方法称为参数收集,对应的参数称为收集参数. 一.参数收集的定义 Python的函数支持可变不定数量的参数 ...

  8. python函数定义时参数相当于占位符_python中函数的参数

    形参:定义函数时代表函数的形式参数 实参:调用函数时传入的实际参数 列如: def f(x,y): # x,y形参 print(x, y) f(1, 2) # 1, 2 实参 定义函数时,形参分为普通 ...

  9. 函数的动态参数和作用域

    1. 动态参数 位置参数的动态参数: *args * 在这里表示接收位置参数的动态传参,接收到的是元祖def chi(*food): # 可以传入任意的位置参数 food是参数名,*便是动态参数 pr ...

最新文章

  1. 【BZOJ】1013 [JSOI2008]球形空间产生器sphere
  2. Vue + Element UI——对话框式登录框DEMO
  3. 每天一道LeetCode-----n皇后问题
  4. muduo学习笔记 - 第五章 高效的多线程日志
  5. Java 命令行编译项目
  6. python进阶之装饰器之3如何利用装饰器强制函数上的类型检查
  7. LeetCode 66. Plus One
  8. 基于JAVA+SpringMVC+Mybatis+MYSQL的宠物商城管理系统
  9. SQL Server 2005 中行号的显示,分页
  10. [ZOJ 3607] Lazier Salesgirl
  11. QT 设置QDialog显示与隐藏系统按钮(最大小化等)
  12. git放弃本地修改:
  13. DBeaver下载安装教程
  14. 常见问题汇总:FLUENT保存物理量数据
  15. Vue全家桶 Vuex的详细介绍
  16. m语言 东华his_M语言
  17. 最小公倍数和最大公约数的三种算法
  18. IntelliJ IDEA 2018.3.3版本破解,亲测可用
  19. 宽屏php模板,宽屏简洁工业网站前端模板
  20. Code VBA完整代码块,创建Visual Basic源代码

热门文章

  1. 伯乐在线优秀翻译博客
  2. 全国计算机等级考试补考时间,全国计算机等级考试如果过不了怎么补考阿,还可以从新报名么...
  3. 生日小助手V3.1——跨平台多语言的农历生日提醒软件
  4. office365绘制表格
  5. 老子终于理解递归了(哈哈哈哈哈哈哈哈哈哈)
  6. apace poi word在表格单元格里新建表
  7. WordPress 古腾堡编辑器将如何影响企业?
  8. mac系统 使用vscode SSH remote 远程连接服务器
  9. 机器视觉系列(03)---TensorFlow2.3 + win10 + GPU安装
  10. 超声波液位传感器和投入式液位传器哪个比较精准