python动态参数用法实例分析


Posted in Python onMay 25, 2015

本文实例讲述了python动态参数用法。分享给大家供大家参考。具体分析如下:

先来看一段代码:

class Person:  
  def __init__(self,*pros,**attrs):  
    self.name = "jeff"  
    self.pros = pros  
    for (key,value) in attrs.items():  
      stm = "self.%s = /"%s/""% (key,value)  
      exec(stm)  
  if __name__ == "__main__":  
    jeff = Person(1,2,3,sex="boy")  
    print jeff.pros  
    print jeff.sex  
    print dir(jeff)

打印出来的内容是:

(1, 2, 3)
boy
['__doc__', '__init__', '__module__', 'name', 'pros', 'sex']

python不定参数:

参数以一个*号开头的代表着一个任意长度的数组,可以接收连续一串参数,如上面代码里传的是1,2,3,你可以更多。

参数以两个*号开头的代表着一个字典,参数的形式是“key=value”,接受连续任意多个参数。

在函数内,我们就可以把前者当作一个元组来处理,打印结果看得出来是一个元组。注意,调用方法是参数不定长,而在方法执行的时候,长度已定了,所以是元组。同时,我们可以把后者当作一个字典来处理。

示例代码里使用可变长参数实现了一个类属性的个性化定制,对于一个Person类,你可以通过传入字典类型的参数使这个类有更多原来不存在的属性,实现方法 是用了exec方法,目前只能通过字符串的参数。这里只是展示了可变参数的使用及exec的神奇力量。真正的函数不应该允许任意用户自定义属性的,可变参 数的目的是为定义函数方便及调用函数时,参数传入形式更自由而已。

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
使用python在校内发人人网状态(人人网看状态)
Feb 19 Python
python用字典统计单词或汉字词个数示例
Apr 22 Python
python通过线程实现定时器timer的方法
Mar 16 Python
Python中的高级函数map/reduce使用实例
Apr 13 Python
Python中字符串格式化str.format的详细介绍
Feb 17 Python
Python读取文件内容的三种常用方式及效率比较
Oct 07 Python
Python+pandas计算数据相关系数的实例
Jul 03 Python
Django框架模板语言实例小结【变量,标签,过滤器,继承,html转义】
May 23 Python
OpenCV3.0+Python3.6实现特定颜色的物体追踪
Jul 23 Python
关于Python3 类方法、静态方法新解
Aug 30 Python
python实现网站微信登录的示例代码
Sep 18 Python
Python Django框架防御CSRF攻击的方法分析
Oct 18 Python
Python文件去除注释的方法
May 25 #Python
python提取页面内url列表的方法
May 25 #Python
python实现批量改文件名称的方法
May 25 #Python
python基于右递归解决八皇后问题的方法
May 25 #Python
python基于urllib实现按照百度音乐分类下载mp3的方法
May 25 #Python
Python输出9*9乘法表的方法
May 25 #Python
Python批量重命名同一文件夹下文件的方法
May 25 #Python
You might like
laravel实现于语言包的完美切换方法
2019/09/29 PHP
struts2 jquery 打造无限层次的树
2009/10/23 Javascript
javascript深入理解js闭包
2010/07/03 Javascript
javascript中clone对象详解
2014/12/03 Javascript
DOM基础教程之使用DOM + Css
2015/01/20 Javascript
JQuery中绑定事件(bind())和移除事件(unbind())
2015/02/27 Javascript
Angular 理解module和injector,即依赖注入
2016/09/07 Javascript
纯js仿淘宝京东商品放大镜功能
2017/03/02 Javascript
async/await与promise(nodejs中的异步操作问题)
2017/03/03 NodeJs
神级程序员JavaScript300行代码搞定汉字转拼音
2017/05/20 Javascript
JavaScript输入分钟、秒倒计时技巧总结(附代码)
2017/08/17 Javascript
vue.js打包之后可能会遇到的坑!
2018/06/03 Javascript
谈谈JavaScript中super(props)的重要性
2019/02/12 Javascript
在微信小程序中使用mqtt服务的方法
2019/12/13 Javascript
Python语言编写电脑时间自动同步小工具
2013/03/08 Python
探究数组排序提升Python程序的循环的运行效率的原因
2015/04/01 Python
Python使用shelve模块实现简单数据存储的方法
2015/05/20 Python
Python中绑定与未绑定的类方法用法分析
2016/04/29 Python
python实现批量修改图片格式和尺寸
2018/06/07 Python
Django中Middleware中的函数详解
2019/07/18 Python
Selenium及python实现滚动操作多种方法
2020/07/21 Python
TensorFlow的环境配置与安装方法
2021/02/20 Python
Columbia美国官网:美国著名的户外服装品牌
2016/11/24 全球购物
Keds加拿大官网:购买帆布运动鞋和皮鞋
2019/09/26 全球购物
C#基础面试题
2016/10/17 面试题
商场活动策划方案
2014/01/24 职场文书
珍惜时间演讲稿
2014/05/14 职场文书
超市开店计划书
2014/09/15 职场文书
公安领导班子四风问题个人整改措施思想汇报
2014/10/09 职场文书
高考升学宴答谢词
2015/01/20 职场文书
2015年度高中教师工作总结
2015/05/26 职场文书
护士业务学习心得体会
2016/01/25 职场文书
《天使的翅膀》读后感3篇
2019/12/20 职场文书
python中requests库+xpath+lxml简单使用
2021/04/29 Python
使用GO语言实现Mysql数据库CURD的简单示例
2021/08/07 Golang
WinServer2012搭建DNS服务器的方法步骤
2022/06/10 Servers