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 相关文章推荐
动态创建类实例代码
Oct 07 Python
简单的通用表达式求10乘阶示例
Mar 03 Python
在Python中关于中文编码问题的处理建议
Apr 08 Python
利用Python批量生成任意尺寸的图片
Aug 29 Python
遍历python字典几种方法总结(推荐)
Sep 11 Python
如何在sae中设置django,让sae的工作环境跟本地python环境一致
Nov 21 Python
机器学习10大经典算法详解
Dec 07 Python
Python 编码规范(Google Python Style Guide)
May 05 Python
numpy下的flatten()函数用法详解
May 27 Python
PyQt5 多窗口连接实例
Jun 19 Python
图文详解Django使用Pycharm连接MySQL数据库
Aug 09 Python
Python爬虫基于lxml解决数据编码乱码问题
Jul 31 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
PHP的substr_replace将指定两位置之间的字符替换为*号
2011/05/04 PHP
新手菜鸟必读:session与cookie的区别
2013/08/22 PHP
jQuery1.6 类型判断实现代码
2011/09/01 Javascript
javascript中String对象的slice()方法分析
2014/12/20 Javascript
js中获取 table节点各tr及td的内容简单实例
2016/10/14 Javascript
js实现横向拖拽导航条功能
2017/02/17 Javascript
Vue.js学习笔记之修饰符详解
2017/07/25 Javascript
微信小程序中使用Promise进行异步流程处理的实例详解
2017/08/17 Javascript
vue-router的HTML5 History 模式设置
2018/09/08 Javascript
JS跨域请求的问题解析
2018/12/03 Javascript
Vue加载json文件的方法简单示例
2019/01/28 Javascript
webpack.DefinePlugin与cross-env区别详解
2020/02/23 Javascript
[50:27]OG vs LGD 2018国际邀请赛淘汰赛BO3 第一场 8.26
2018/08/30 DOTA
Python采集代理ip并判断是否可用和定时更新的方法
2018/05/07 Python
python的pytest框架之命令行参数详解(下)
2019/06/27 Python
Python简易版停车管理系统
2019/08/12 Python
Django使用中间件解决前后端同源策略问题
2019/09/02 Python
Python数据可视化:顶级绘图库plotly详解
2019/12/07 Python
Python交互环境下打印和输入函数的实例内容
2020/02/16 Python
如何利用CSS3制作3D效果文字具体实现样式
2013/05/02 HTML / CSS
英国最大的邮寄种子和植物公司:Thompson & Morgan
2017/09/21 全球购物
SISLEY希思黎官方旗舰店:享誉全球的奢华植物美容品牌
2018/04/25 全球购物
德国高尔夫商店:Golfshop.de
2019/06/22 全球购物
生产管理的三大手法
2013/11/11 职场文书
银行存款证明样本
2014/01/17 职场文书
军训 自我鉴定
2014/02/03 职场文书
寒假家长评语大全
2014/04/16 职场文书
给公司的建议书范文
2014/05/13 职场文书
党的群众路线对照检查材料范文
2014/09/24 职场文书
党员领导干部民主生活会批评与自我批评发言
2014/09/28 职场文书
六查六看自检自查剖析材料
2014/10/14 职场文书
检讨书范文300字
2015/01/28 职场文书
法定代表人免职证明
2015/06/24 职场文书
教师年度考核自我评鉴
2015/08/11 职场文书
医院病假条范文
2015/08/17 职场文书
劳动合同变更协议书范本
2019/04/18 职场文书