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根据开头和结尾字符串获取中间字符串的方法
Mar 26 Python
python下paramiko模块实现ssh连接登录Linux服务器
Jun 03 Python
在Django的form中使用CSS进行设计的方法
Jul 18 Python
Python实现字典的遍历与排序功能示例
Dec 23 Python
详解Django rest_framework实现RESTful API
May 24 Python
Python中pip更新和三方插件安装说明
Jul 08 Python
浅谈Python基础—判断和循环
Mar 22 Python
由Python编写的MySQL管理工具代码实例
Apr 09 Python
TensorFlow实现简单的CNN的方法
Jul 18 Python
python文字转语音实现过程解析
Nov 12 Python
Python实现猜年龄游戏代码实例
Mar 25 Python
Python学习之time模块的基本使用
Jan 17 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的日期与时间函数技巧
2008/04/24 PHP
php的urlencode()URL编码函数浅析
2011/08/09 PHP
用Zend Studio+PHPnow+Zend Debugger搭建PHP服务器调试环境步骤
2014/01/19 PHP
php实现发送微信模板消息的方法
2015/03/07 PHP
盘点PHP和ASP.NET的10大对比!
2015/12/24 PHP
PHP内置加密函数详解
2016/11/20 PHP
Web版彷 Visual Studio 2003 颜色选择器
2007/01/09 Javascript
JQuery 确定css方框模型(盒模型Box Model)
2010/01/22 Javascript
基于jquery的防止大图片撑破页面的实现代码(立即缩放)
2011/10/24 Javascript
javascript在IE下trim函数无法使用的解决方法
2014/09/12 Javascript
JavaScript对数字的判断与处理实例分析
2015/02/02 Javascript
深入解读JavaScript中的Iterator和for-of循环
2015/07/28 Javascript
基于Jquery实现表单验证
2020/07/20 Javascript
jquery图片滚动放大代码分享(2)
2015/08/28 Javascript
javascript for-in有序遍历json数据并探讨各个浏览器差异
2015/11/30 Javascript
jQuery使用动画队列自定义动画操作示例
2018/06/16 jQuery
如何从0开始用node写一个自己的命令行程序
2018/12/29 Javascript
[03:17]2014DOTA2 国际邀请赛中国区预选赛 四强专访
2014/05/23 DOTA
深入理解Python对Json的解析
2017/02/14 Python
python 删除指定时间间隔之前的文件实例
2018/04/24 Python
对Python中DataFrame选择某列值为XX的行实例详解
2019/01/29 Python
实例介绍Python中整型
2019/02/11 Python
Python获取命令实时输出-原样彩色输出并返回输出结果的示例
2019/07/11 Python
keras的backend 设置 tensorflow,theano操作
2020/06/30 Python
OpenCV利用python来实现图像的直方图均衡化
2020/10/21 Python
CSS3 box-sizing属性
2009/04/17 HTML / CSS
Keds加拿大官网:购买帆布运动鞋和皮鞋
2019/09/26 全球购物
波兰快递服务:Globkurier.pl
2019/11/08 全球购物
英国著名药妆店:Superdrug
2021/02/13 全球购物
毕业生个人求职信范例分享
2013/12/17 职场文书
幼儿园运动会加油词
2014/02/14 职场文书
2015年秋季小学开学标语
2015/07/16 职场文书
2016年大学生寒假社会实践心得体会
2015/10/09 职场文书
拔河比赛队名及霸气口号
2015/12/24 职场文书
Python中使用subprocess库创建附加进程
2021/05/11 Python
vmware虚拟机打不开vmx文件怎么办 ?vmware虚拟机vmx文件打开方法
2022/04/08 数码科技