Python函数中*args和**kwargs来传递变长参数的用法


Posted in Python onJanuary 26, 2016

单星号形式(*args)用来传递非命名键可变参数列表。双星号形式(**kwargs)用来传递键值可变参数列表。

下面的例子,传递了一个固定位置参数和两个变长参数。

def test_var_args(farg, *args):
  print "formal arg:", farg
  for arg in args:
    print "another arg:", arg

test_var_args(1, "two", 3)

结果如下:

formal arg: 1
another arg: two
another arg: 3

这个例子用来展示键值对形式的可变参数列表,一个固定参数和两个键值参数。

def test_var_kwargs(farg, **kwargs):
  print "formal arg:", farg
  for key in kwargs:
    print "another keyword arg: %s: %s" % (key, kwargs[key])

test_var_kwargs(farg=1, myarg2="two", myarg3=3)

执行结果:

formal arg: 1
another keyword arg: myarg2: two
another keyword arg: myarg3: 3

调用函数时,使用 *args and **kwargs

这种语法不仅仅是在函数定义的时候可以使用,调用函数的时候也可以使用

def test_var_args_call(arg1, arg2, arg3):
  print "arg1:", arg1
  print "arg2:", arg2
  print "arg3:", arg3

args = ("two", 3)
test_var_args_call(1, *args)

执行结果如下:

arg1: 1
arg2: two
arg3: 3

键值对方式:

def test_var_args_call(arg1, arg2, arg3):
  print "arg1:", arg1
  print "arg2:", arg2
  print "arg3:", arg3

kwargs = {"arg3": 3, "arg2": "two"}
test_var_args_call(1, **kwargs)

结果如下:

arg1: 1
arg2: two
arg3: 3
Python 相关文章推荐
Python实现的径向基(RBF)神经网络示例
Feb 06 Python
Python多层装饰器用法实例分析
Feb 09 Python
pandas的object对象转时间对象的方法
Apr 11 Python
pandas数据处理基础之筛选指定行或者指定列的数据
May 03 Python
python实现将多个文件分配到多个文件夹的方法
Jan 07 Python
django之状态保持-使用redis存储session的例子
Jul 28 Python
python 用户交互输入input的4种用法详解
Sep 24 Python
python线程安全及多进程多线程实现方法详解
Sep 27 Python
python自动化测试之异常及日志操作实例分析
Nov 09 Python
Pycharm如何运行.py文件的方法步骤
Mar 03 Python
快速解决Django关闭Debug模式无法加载media图片与static静态文件
Apr 07 Python
Python如何输出百分比
Jul 31 Python
python中的编码知识整理汇总
Jan 26 #Python
在MAC上搭建python数据分析开发环境
Jan 26 #Python
python黑魔法之编码转换
Jan 25 #Python
Python编程中对文件和存储器的读写示例
Jan 25 #Python
Python开发如何在ubuntu 15.10 上配置vim
Jan 25 #Python
详解Python验证码识别
Jan 25 #Python
Python网站验证码识别
Jan 25 #Python
You might like
PHP获取表单textarea数据中的换行问题
2010/09/10 PHP
PHP防止注入攻击实例分析
2014/11/03 PHP
功能强大的php分页函数
2016/07/20 PHP
用PHP的socket实现客户端到服务端的通信实例详解
2017/02/04 PHP
那些年,我还在学习jquery 学习笔记
2012/03/05 Javascript
JS获取键盘上任意按键的值(实例代码)
2013/11/12 Javascript
jQuery实现的在线答题功能
2015/04/12 Javascript
基于bootstrap实现收缩导航条
2017/03/17 Javascript
javascript中json对象json数组json字符串互转及取值方法
2017/04/19 Javascript
vue增删改查的简单操作
2017/07/15 Javascript
使用Node.js搭建静态资源服务详细教程
2017/08/02 Javascript
微信小程序自定义底部弹出框
2020/11/16 Javascript
vue自定义指令之面板拖拽的实现
2019/04/14 Javascript
vue自定义正在加载动画的例子
2019/11/14 Javascript
element-ui 弹窗组件封装的步骤
2021/01/22 Javascript
Python内置函数bin() oct()等实现进制转换
2012/12/30 Python
python二叉树遍历的实现方法
2013/11/21 Python
win10下Python3.6安装、配置以及pip安装包教程
2017/10/01 Python
python GUI实例学习
2017/11/21 Python
Python 爬取携程所有机票的实例代码
2018/06/11 Python
Python IDLE清空窗口的实例
2018/06/25 Python
django 单表操作实例详解
2019/07/30 Python
Python函数中的可变长参数详解
2019/09/12 Python
Pytorch 实现权重初始化
2019/12/31 Python
Python使用正则表达式实现爬虫数据抽取
2020/08/17 Python
Python自定义sorted排序实现方法详解
2020/09/18 Python
纯css3使用vw和vh实现自适应的方法
2018/02/09 HTML / CSS
Mio Skincare中文官网:肌肤和身体护理
2016/10/26 全球购物
美国浴缸、水槽和水龙头购物网站:Vintage Tub & Bath
2019/11/05 全球购物
实习评语大全
2014/04/26 职场文书
2014年维修电工工作总结
2014/11/20 职场文书
个人简历自我评价怎么写
2015/03/10 职场文书
九年级英语教学反思
2016/02/15 职场文书
2019幼儿教师求职信(3篇)
2019/09/20 职场文书
Python下opencv库的安装过程及问题汇总
2021/06/11 Python
python实现简易自习室座位预约系统
2021/06/30 Python