#转载请联系

def task(a,b,c,*args,**kwargs):print(a)print(b)print(c)print(args)print(kwargs)task(1,2,3,4,5,6,name="chichung",age=22)输出:
1
2
3
(4, 5, 6)
{'age': 22, 'name': 'chichung'}

编写函数时,如果没办法预计用户传入的参数有多少个,可以用装包的方式。在进行数据的处理时,把包拆开,语法上就是把前面的*去掉。如果没有把*去掉会出现什么问题呢?

def task(a,b,c,*args,**kwargs):print(a)print(b)print(c)print(*args)# print(**kwargs)

task(1,2,3,4,5,6,name="chichung",age=22)输出:
1
2
3
4 5 6  # 一个这样的东西,没有逗号

def task(a,b,c,*args,**kwargs):print(a)print(b)print(c)# print(*args)print(**kwargs)task(1,2,3,4,5,6,name="chichung",age输出:
1
2
3
Traceback (most recent call last):File "/home/chichung/桌面/不定长参数的装包与拆包.py", line 8, in <module>task(1,2,3,4,5,6,name="chichung",age=22)File "/home/chichung/桌面/不定长参数的装包与拆包.py", line 6, in taskprint(**kwargs)
TypeError: 'age' is an invalid keyword argument for this function

至于为什么去掉**kwargs的*会报错呢?我暂时也不知道原因- -|

现在有一个需求,task()函数里面还要再写一个函数,而且这个函数也要接收和task()函数一模一样的参数,怎么该做呢?

很简单

def task(a,b,c,*args,**kwargs):#task的代码task2(a,b,c,*args,**kwargs)  # 注意是有*号的。def task2(a,b,c,*args,**kwargs):#task2的代码

转载于:https://www.cnblogs.com/chichung/p/9620608.html

不定长参数的装包与拆包相关推荐

  1. Python 不定长参数 *argc/**kargcs - Python零基础入门教程

    目录 一.前言 二.Python 不定长参数 argc/*kargcs 简介 1.函数不定长参数 *args 使用 2.函数不定长参数 **kwargs 使用 3.函数不定长参数*args 和**kw ...

  2. python3 函数 不定长参数 不定参

    第一种不定长参数*args *args 称为不定长参数,只能放在形参的最后位置,返回的是一个元组 def num(a,b,*args):print(a)print(b)print(args)num(1 ...

  3. python不定长参数怎么相加_python函数不定长参数使用方法解析

    这篇文章主要介绍了python函数不定长参数使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 pathon中的函数可以使用不定长参数,可以 ...

  4. python不定长参数详解

    不定长参数 如果想要一个函数能不固定接收任意多个参数,可以使用不定长参数. 1.不定长参数两种基本形式: python自定义函数中有两种不定长参数,第一种是*XXX,在传入额外的参数时可以不用指明参数 ...

  5. python笔记之函数参数(缺省参数,命名参数,不定长参数)

    缺省参数 函数中定义带有初始值的形参 参数调用时,缺省参数可传,可不传 缺省参数一定在参数列表的最后面 缺省参数的数量没有限制 def x_y_sum(x,y=20): #缺省参数要在参数列表的最后p ...

  6. java 不定参数方法_java中不定长参数的使用方法

    java中不定长参数的使用方法 不定长参数方法的语法如下:返回值 方法名(参数类型...参数名称) 在参数列表中使用"..."形式定义不定长参数,其实这个不定长参数a就是一个数组, ...

  7. C语言 函数不定长参数 ##__VA_ARGS__经典案例 - C语言零基础入门教程

    目录 一.##__VA_ARGS__简介 二.##__VA_ARGS__经典案例 三.猜你喜欢 零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言基础入门 一.## ...

  8. C语言 函数不定长参数 - C语言零基础入门教程

    目录 一.前言 二.函数不定长参数简介 1.va_start 2.va_arg 3.va_end 三.自定义不定长参数的函数 1.va_start/va_arg/va_end 案例一 2.va_sta ...

  9. java 不定长参数实现原理

    public static void main(String[] args) {test("a", "b", "c");}public st ...

最新文章

  1. CSS核心技术详解-核心概念
  2. [dsu on tree]树上启发式合并总结(算法思想及模板附例题练习)
  3. python开发工具下所有软件都打不开_Python 开发工具链全解
  4. 【LeetCode】3月22日打卡-Day7
  5. oracle inventory directory,oraInventory目录的作用
  6. 腐蚀rust研究台抽奖_中石化青岛安工院专家分享延迟焦化装置的腐蚀风险分析!...
  7. SQLAlchemy简单入门
  8. Brownie Slicing(二分枚举答案)
  9. 【求助】C# Charting控件 画散点图,当所有的点X=0时,X轴的位置画错了,代码如下...
  10. 今天,启动MySQL服务器失败,
  11. Lodop简短问答客户反馈篇 及排查步骤 及注册相关
  12. Edsger W. Dijkstra -- 巨人的肩膀
  13. SQLServer中如何高效解析JSON格式数据
  14. C#使用Microsoft.office.interop.PowerPoint生成PPT
  15. 湖南省中职学业水平考试复习试题(数学)
  16. Thinkpad使用傲游浏览器的时候,无法滚动页面怎么办?
  17. 【Other】希腊诸神大全-中英文名称
  18. 如何解决QT视频会议窗口在拉伸过程中整个界面闪烁的问题
  19. HC-05 蓝牙 2.0 串口模块
  20. 弹性地基梁板实用计算_桥梁支架设计计算,看这里!

热门文章

  1. c++字符串拼接_Python零基础入门(三):字符串进阶
  2. css 动态rem_【面试题】CSS知识点整理(附答案)
  3. linux shell 变量减法_第四章 shell和环境变量
  4. 华为新系统鸿蒙升级平板名单,华为鸿蒙系统升级名单正式确认!全面替换安卓:流畅度比肩iOS...
  5. mysql 获取当月每一天_mysql获取从某个时间到今天的每一天的日期,以及笛卡尔积...
  6. 大牛整理:java去掉字符串中的逗号
  7. java算法题常用到的一些api,含面试题+答案
  8. 机器学习(MACHINE LEARNING)从零搭建一个汽车状态分类器(Tensorflow)
  9. 7-22 堆栈模拟队列 (25 分)
  10. html如何扩大div,HTML – 如何让绝对div适合父宽度/填充?