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实现拼接多张图片的方法
Dec 01 Python
使用Python脚本来控制Windows Azure的简单教程
Apr 16 Python
Python实现时钟显示效果思路详解
Apr 11 Python
pyqt5实现俄罗斯方块游戏
Jan 11 Python
Python利用sqlacodegen自动生成ORM实体类示例
Jun 04 Python
python实现合并多个list及合并多个django QuerySet的方法示例
Jun 11 Python
Python计算一个点到所有点的欧式距离实现方法
Jul 04 Python
python 获取sqlite3数据库的表名和表字段名的实例
Jul 17 Python
Python单例模式的四种创建方式实例解析
Mar 04 Python
Django 解决阿里云部署同步数据库报错的问题
May 14 Python
keras读取训练好的模型参数并把参数赋值给其它模型详解
Jun 15 Python
Python爬虫如何破解JS加密的Cookie
Nov 19 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的反射类ReflectionClass、ReflectionMethod使用实例
2014/08/05 PHP
php 把数字转换成汉字的代码
2015/07/21 PHP
PHP 前加at符合@的作用解析
2015/07/31 PHP
php实现倒计时效果
2015/12/19 PHP
php中简单的对称加密算法实现
2017/01/05 PHP
PHP排序算法之快速排序(Quick Sort)及其优化算法详解
2018/04/21 PHP
Laravel框架实现利用监听器进行sql语句记录功能
2018/06/06 PHP
兼容Mozilla必须知道的知识。
2007/01/09 Javascript
js 时间格式与时间戳的相互转换示例代码
2013/12/25 Javascript
关闭时刷新父窗口两种方法
2014/05/07 Javascript
Egret引擎开发指南之视觉编程
2014/09/03 Javascript
深入分析jquery解析json数据
2014/12/09 Javascript
jQuery form插件之ajaxForm()和ajaxSubmit()的可选参数项对象
2016/01/23 Javascript
JS组件Bootstrap Select2使用方法解析
2016/05/30 Javascript
JS读取XML文件数据并以table形式显示数据的方法(兼容IE与火狐)
2016/06/02 Javascript
javascript ASCII和Hex互转的实现方法
2016/12/27 Javascript
JavaScript实现经典排序算法之插入排序
2016/12/28 Javascript
bootstrap table操作技巧分享
2017/02/15 Javascript
简单实现js放大镜效果
2017/07/24 Javascript
微信小程序websocket实现聊天功能
2020/03/30 Javascript
手挽手带你学React之React-router4.x的使用
2019/02/14 Javascript
Node.js在图片模板上生成二维码图片并附带底部文字说明实现详解
2019/08/07 Javascript
vue移动端的左右滑动事件详解
2020/06/17 Javascript
vue prop传值类型检验方式
2020/07/30 Javascript
Python深入06——python的内存管理详解
2016/12/07 Python
python按时间排序目录下的文件实现方法
2018/10/17 Python
python中设置超时跳过,超时退出的方式
2019/12/13 Python
Pytorch GPU显存充足却显示out of memory的解决方式
2020/01/13 Python
pycharm实现在虚拟环境中引入别人的项目
2020/03/09 Python
Python动态强类型解释型语言原理解析
2020/03/25 Python
如何在VSCode下使用Jupyter的教程详解
2020/07/13 Python
用CSS3实现背景渐变的方法
2015/07/14 HTML / CSS
记者岗位职责
2014/01/06 职场文书
副总经理岗位职责范本
2014/09/30 职场文书
杜甫草堂导游词
2015/02/03 职场文书
办公室个人总结
2015/02/28 职场文书