python函数参数*args**kwargs用法实例


Posted in Python onDecember 04, 2013
#coding=utf8
__author__ = 'Administrator'
# 当函数的参数不确定时,可以使用*args和**kwargs。*args没有key值,**kwargs有key值
def fun_var_args(farg, *args):
    print 'args:', farg
    for value in args:
        print 'another arg:',value
# *args可以当作可容纳多个变量组成的list或tuple
fun_var_args(1, 'two', 3, None)
#args: 1
#another arg: two
#another arg: 3
#another arg: None

def fun_var_kwargs(farg, **kwargs):
    print 'args:',farg
    for key in kwargs:
        print 'another keyword arg:%s:%s' % (key, kwargs[key])
# myarg1,myarg2和myarg3被视为key, 感觉**kwargs可以当作容纳多个key和value的dictionary
fun_var_kwargs(1, myarg1='two', myarg2=3, myarg3=None)
# 输出:
#args: 1
#another keyword arg:myarg1:two
#another keyword arg:myarg2:3
#another keyword arg:myarg3:None
def fun_args(arg1, arg2, arg3):
    print 'arg1:', arg1
    print 'arg2:', arg2
    print 'arg3:', arg3
myargs = ['1', 'two', None]     # 定义列表
fun_args(*myargs)
# 输出:
#arg1: 1
#arg2: two
#arg3: None
mykwargs = {'arg1': '1', 'arg2': 'two', 'arg3': None}      # 定义字典类型
fun_args(**mykwargs)
# 输出:
#arg1: 1
#arg2: two
#arg3: None
# 两者都有
def fun_args_kwargs(*args, **kwargs):
    print 'args:', args
    print 'kwargs:', kwargs

args = [1, 2, 3, 4]
kwargs = {'name': 'BeginMan', 'age': 22}
fun_args_kwargs(args,kwargs)
# args: ([1, 2, 3, 4], {'age': 22, 'name': 'BeginMan'})
# kwargs: {}
fun_args_kwargs(1,2,3,a=100)
#args: (1, 2, 3)
#kwargs: {'a': 100}
fun_args_kwargs(*(1,2,3,4),**{'a':None})
#args: (1, 2, 3, 4)
#kwargs: {'a': None}
 

 

Python 相关文章推荐
Pyramid添加Middleware的方法实例
Nov 27 Python
python采集博客中上传的QQ截图文件
Jul 18 Python
python实现根据主机名字获得所有ip地址的方法
Jun 28 Python
Python循环语句中else的用法总结
Sep 11 Python
Django与JS交互的示例代码
Aug 23 Python
python实现基于SVM手写数字识别功能
May 27 Python
django orm 通过related_name反向查询的方法
Dec 15 Python
django富文本编辑器的实现示例
Apr 10 Python
使用PyQt4 设置TextEdit背景的方法
Jun 14 Python
Python字典对象实现原理详解
Jul 01 Python
详解pandas DataFrame的查询方法(loc,iloc,at,iat,ix的用法和区别)
Aug 02 Python
django echarts饼图数据动态加载的实例
Aug 12 Python
Mac OS X10.9安装的Python2.7升级Python3.3步骤详解
Dec 04 #Python
Python Web框架Pylons中使用MongoDB的例子
Dec 03 #Python
python将xml xsl文件生成html文件存储示例讲解
Dec 03 #Python
python使用reportlab画图示例(含中文汉字)
Dec 03 #Python
python33 urllib2使用方法细节讲解
Dec 03 #Python
python使用mysqldb连接数据库操作方法示例详解
Dec 03 #Python
二种python发送邮件实例讲解(python发邮件附件可以使用email模块实现)
Dec 03 #Python
You might like
PHP实现域名whois查询的代码(数据源万网、新网)
2010/02/22 PHP
php session和cookie使用说明
2010/04/07 PHP
php&mysql 日期操作小记
2012/02/27 PHP
set_include_path和get_include_path使用及注意事项
2013/02/02 PHP
PHP模拟asp.net的StringBuilder类实现方法
2015/08/08 PHP
thinkPHP模型初始化实例分析
2015/12/03 PHP
php实现微信小程序授权登录功能(实现流程)
2019/11/13 PHP
Laravel 微信小程序后端实现用户登录的示例代码
2019/11/26 PHP
网页整体变灰白色(兼容各浏览器)实例
2013/04/21 Javascript
你必须知道的Javascript知识点之"this指针"的应用
2013/04/23 Javascript
JQuery的自定义事件代码,触发,绑定简单实例
2013/08/01 Javascript
js获取当前页面路径示例讲解
2014/01/08 Javascript
使用JavaScript实现网页版Pongo设计思路及源代码分享
2014/06/16 Javascript
Javascript学习笔记之函数篇(六) : 作用域与命名空间
2014/11/23 Javascript
Jquery中基本选择器用法实例详解
2015/05/18 Javascript
详解JS去重及字符串奇数位小写转大写
2016/12/29 Javascript
Nodejs实现短信验证码功能
2017/02/09 NodeJs
w3c编程挑战_初级脚本算法实战篇
2017/06/23 Javascript
element-ui多文件上传的实现示例
2019/04/10 Javascript
vue结合el-upload实现腾讯云视频上传功能
2020/07/01 Javascript
Element Steps步骤条的使用方法
2020/07/26 Javascript
谈谈JavaScript中的函数
2020/09/08 Javascript
vuex的使用步骤
2021/01/06 Vue.js
[13:25]VP vs VICI (BO3)
2018/06/07 DOTA
分享几道你可能遇到的python面试题
2017/07/24 Python
Django开发中的日志输出的方法
2018/07/02 Python
HTML5 预加载让页面得以快速呈现
2013/08/13 HTML / CSS
C#中类(class)与结构(struct)的异同
2013/11/03 面试题
教师个人自我鉴定
2014/02/08 职场文书
企业宗旨标语
2014/06/10 职场文书
无刑事犯罪记录证明
2014/09/18 职场文书
2015年党员干部承诺书
2015/01/21 职场文书
食品药品安全责任书
2015/05/11 职场文书
交流会主持词
2015/07/02 职场文书
Spring依赖注入多种类型数据的示例代码
2022/03/31 Java/Android
python实现双链表
2022/05/25 Python