参考链接: Python中的*args 和 **kwargs

博客已经搬家到“捕获完成”:

https://www.v2python.com

或者可以叫做,在Python中如何使用可变长参数列表

函数定义

这是一种特殊的语法,在函数定义中使用*args和kwargs传递可变长参数. *args用作传递非命名键值可变长参数列表(位置参数); kwargs用作传递键值可变长参数列表

注:《python核心编程第2版》的11.6可变长度的参数---章节中有详细介绍。

一、*args的使用方法

*args 用来将参数打包成tuple给函数体调用

例子一:

def function(*args):

print(args, type(args))

function(1)

输出结果以元组的形式展示:

例子二:

def function(x, y, *args):

print(x, y, args)

function(1, 2, 3, 4, 5)

输出结果:

二、**kwargs的使用方法

**kwargs 打包关键字参数成dict给函数体调用

例子一:

def function(**kwargs):

print( kwargs, type(kwargs))

function(a=2)

输出结果以列表形式展示:

例子二:

def function(**kwargs):

print(kwargs)

function(a=1, b=2, c=3)

输出结果:

注意点:参数arg、*args、**kwargs三个参数的位置必须是一定的。必须是(arg,*args,**kwargs)这个顺序,否则程序会报错。

def function(arg,*args,**kwargs):

print(arg,args,kwargs)

function(6,7,8,9,a=1, b=2, c=3)

输出结果:

https://www.cnblogs.com/yunguoxiaoqiao/p/7626992.html

另一个问题:

def test_parallel_assignments_with_extra_values(self):

title, *first_names, last_name = ["Sir", "Ricky", "Bobby", "Worthington"]

self.assertEqual("Sir", title)

self.assertEqual(["Ricky", "Bobby"], first_names)

self.assertEqual("Worthington", last_name)

为什么加了星号的?这个是什么意思?

>>> title, *first_names, last_name = ["Sir", "Ricky", "Bobby", "Worthington"] >>> >>> title 'Sir' >>> *first_names   File "<stdin>", line 1 SyntaxError: can't use starred expression here >>> last_name 'Worthington' >>> title, *first_names, last_name = ["Sir", "Ricky", "Bobby", "Worthington","mary"] >>> last_name 'mary'

这就表示加了* 表示可变长,不管有多少,反正可变长

[转载] 【python】Python中*args和**kwargs的区别(在Python中如何使用可变长参数列表)相关推荐

  1. python 中*args 和 **kwargs的区别

    *args的用法 当你不确定你的函数里将要传递多少参数时你可以用*args.例如,它可以传递任意数量的参数: def print_everything(*args):for count, thing ...

  2. Python中*args和**kwargs的区别

    https://www.cnblogs.com/yunguoxiaoqiao/p/7626992.html (注:本文部分内容摘自互联网,由于作者水平有限,不足之处,还望留言指正.) 中秋的夜,微凉, ...

  3. [转载] python中*args 和 **kwargs区别

    参考链接: 带有* args和** kwargs的Python中的可变长度参数 1 *args 和 **kwargs 定义. 你可以将不定数量的参数传递给一个函数.不定的意思是:预先并不知道, 函数使 ...

  4. Python中*args 和**kwargs的用法探讨

    当函数的参数不确定时,可以使用*args 和**kwargs,*args 没有key值,**kwargs有key值.不确定的意思可以是有,有几个,也可以是没有 *args可以当作可容纳多个变量组成的l ...

  5. python中*args和**kwargs的使用

    文章来源:*Args和**kwargs的使用[重复] - 代码领悟code05.com 提问:python中*args和**kwargs的使用 所以我对*args和**kwargs的概念有困难. 到目 ...

  6. python中*args 和 **kwargs区别

    1 *args 和 **kwargs 定义. 你可以将不定数量的参数传递给一个函数.不定的意思是:预先并不知道, 函数使用者会传递多少个参数给你, 所以在这个场景下使用这两个关键字.其实并不是必须写成 ...

  7. Python中*args和**kwargs的使用方法

    1.*args和**kwargs的含义     在Python中的代码中经常会见到这两个词 args 和 kwargs,前面通常还会加上一个或者两个星号.其实这只是编程人员约定的变量名字,args 是 ...

  8. python kwargs是什么参数_Python中*args 和 **kwargs的用法总结

    对于大部分Python新手来说,*args和**kwargs这两个魔法变量需要花大量的时间来解释.那么它们到底是什么呢?在什么时候使用它们呢?要搞清楚这些问题,首先你要明白,其实并不是必须写成*arg ...

  9. python知识:*args 和**kwargs

    1. *args 和 **kwargs 多数新的 Python 程序员都很难弄清楚 *args 和 **kwargs 魔术变量.那么它们是什么?首先让我告诉你,没有必要写 *args 或 **kwar ...

最新文章

  1. 七段数码管段码表共阳_常用数字电路之显示篇数码管
  2. OSSIM平台安全事件关联分析实践
  3. 保证计算机网络的稳定运行,厦门大学校园网管理保证网络稳定运行
  4. 基于cobbler实现自动安装系统
  5. java httpclient 获取cookie_java – 从httpclient 3转换为httpclient 4(Cookie策略)
  6. mysql中length与char_length字符长度函数使用方法
  7. 使用countup.js使数字动态叠加
  8. 20155209 林虹宇 Exp9 Web安全基础
  9. Expression,挑起2006年最后的争论?
  10. mysql connector net 6.9.3_MySQL Connector/Net 6.9.3 发布 MySQL Connector/Net 6.9.3下载
  11. MySQL笔记-InnoDB中Record Lock与Gap Lock
  12. 小程序入门到精通(三):学小程序必备技术基础-flex布局
  13. 深度解析 | 基于DAG的分布式任务调度平台:Maat 1
  14. 安装xmanager linux系统,安装Xmanager登陆Linux操作系统[图文]
  15. ofo 彻底凉凉。。。
  16. python科学计算环境配置_Python科学计算环境推荐――Anaconda
  17. 离散数学 --- 特殊图 --- 欧拉图,哈密顿图
  18. 【USACO10HOL】 Cow Politics
  19. 计算机职业生涯测评,皮纹检测职业版——职业生涯规划指南测评系统
  20. 关于java的毕业设计_我的java毕业设计之路回顾

热门文章

  1. vs怎么把文字超链接_怎么拥有自己设计的简单个人网站(超细节)
  2. 不能随意切换的Tab选项卡页面
  3. 排序算法之 插入排序
  4. UnityShader32:PBR(一)
  5. Adboost、GBDT、Xgboost 详解
  6. Kubernetes Pod 优先级和抢占
  7. matlab2c使用c++实现matlab函数系列教程-load函数
  8. 图像处理一:形态学膨胀和腐蚀
  9. matlab简单分析离散小波变换
  10. AD19中画MOSFET的常见错误——封装出错