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的面向对象思想分析
Jan 14 Python
Python获取邮件地址的方法
Jul 10 Python
Python编程中对super函数的正确理解和用法解析
Jul 02 Python
Python多进程写入同一文件的方法
Jan 14 Python
Python正则表达式匹配日期与时间的方法
Jul 07 Python
opencv python图像梯度实例详解
Feb 04 Python
sklearn线性逻辑回归和非线性逻辑回归的实现
Jun 09 Python
解决Python 函数声明先后顺序出现的问题
Sep 02 Python
Python使用内置函数setattr设置对象的属性值
Oct 16 Python
Python ellipsis 的用法详解
Nov 20 Python
PyCharm Ctrl+Shift+F 失灵的简单有效解决操作
Jan 15 Python
Flask处理Web表单的实现方法
Jan 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
MOTOROLA 摩托罗拉 MODEL 66-XI五灯中波收音机
2021/03/02 无线电
浅析php学习的路线图
2013/07/10 PHP
PHP 中 Orientation 属性判断上传图片是否需要旋转
2015/10/16 PHP
PHP中加速、缓存扩展的区别和作用详解(eAccelerator、memcached、xcache、APC )
2016/07/09 PHP
PHP基于正则批量替换Img中src内容实现获取缩略图的功能示例
2017/06/07 PHP
laravel 获取当前url的别名方法
2019/10/11 PHP
js右键菜单效果代码
2007/07/21 Javascript
JavaScript Tips 使用DocumentFragment加快DOM渲染速度
2010/06/28 Javascript
事件绑定之小测试  onclick && addEventListener
2011/07/31 Javascript
jquery DIV撑大让滚动条滚到最底部代码
2013/06/06 Javascript
深入浅析JavaScript中prototype和proto的关系
2015/11/15 Javascript
canvas的神奇用法
2017/02/03 Javascript
JavaScript实现父子dom同时绑定两个点击事件,一个用捕获,一个用冒泡时执行顺序的方法
2017/03/30 Javascript
微信小程序自定义弹窗wcPop插件
2018/11/19 Javascript
JavaScript使用小插件实现倒计时的方法讲解
2019/03/11 Javascript
了解javascript中的Dom操作
2019/05/27 Javascript
vue实现按需加载组件及异步组件功能
2019/05/27 Javascript
[04:26]2014DOTA2西雅图国际邀请赛 总决赛TOPPLAY
2014/07/22 DOTA
用Python编写一个简单的俄罗斯方块游戏的教程
2015/04/03 Python
Python的Flask框架中使用Flask-SQLAlchemy管理数据库的教程
2016/06/14 Python
Python如何import文件夹下的文件(实现方法)
2017/01/24 Python
基于python实现学生管理系统
2018/10/17 Python
Python中使用__new__实现单例模式并解析
2019/06/25 Python
python可视化爬虫界面之天气查询
2019/07/03 Python
python中@property和property函数常见使用方法示例
2019/10/21 Python
使用pytorch 筛选出一定范围的值
2020/06/28 Python
最新远光软件笔试题面试题内容
2013/11/08 面试题
What's the difference between an interface and abstract class? (接口与抽象类有什么区别)
2012/10/29 面试题
会计核算科岗位职责
2014/03/19 职场文书
养成教育经验材料
2014/05/26 职场文书
共青团员自我评价范文
2014/09/14 职场文书
优秀校长事迹材料
2014/12/24 职场文书
小学生作文批改评语
2014/12/25 职场文书
仙境之桥观后感
2015/06/16 职场文书
培根随笔读书笔记
2015/07/01 职场文书
详细介绍python操作RabbitMq
2022/04/12 Python