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之不要红头文件(1)
Sep 28 Python
Python中使用Flask、MongoDB搭建简易图片服务器
Feb 04 Python
Python如何import文件夹下的文件(实现方法)
Jan 24 Python
Django rest framework工具包简单用法示例
Jul 20 Python
对Tensorflow中的矩阵运算函数详解
Jul 27 Python
Window 64位下python3.6.2环境搭建图文教程
Sep 19 Python
Python3爬虫学习入门教程
Dec 11 Python
自适应线性神经网络Adaline的python实现详解
Sep 30 Python
使用tqdm显示Python代码执行进度功能
Dec 08 Python
TensorFlow 输出checkpoint 中的变量名与变量值方式
Feb 11 Python
Python文件操作基础流程解析
Mar 19 Python
Python爬虫爬取糗事百科段子实例分享
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
jQuery 源码分析笔记
2011/05/25 PHP
PHP多个版本的分析解释
2011/07/21 PHP
phpexcel导入excel数据使用方法实例
2013/12/24 PHP
javascript+php实现根据用户时区显示当地时间的方法
2015/03/11 PHP
php检索或者复制远程文件的方法
2015/03/13 PHP
Zend Framework教程之前端控制器Zend_Controller_Front用法详解
2016/03/07 PHP
PHP实现求两个字符串最长公共子串的方法示例
2017/11/17 PHP
在laravel中实现ORM模型使用第二个数据库设置
2019/10/24 PHP
jQuery 页面载入进度条实现代码
2009/02/08 Javascript
JS弹出对话框返回值代码(asp.net后台)
2010/12/28 Javascript
js中实现多态采用和继承类似的方法
2014/08/22 Javascript
用js读、写、删除Cookie代码续篇
2014/12/03 Javascript
基于jQuery实现的图片切换焦点图整理
2014/12/07 Javascript
JavaScript随机生成信用卡卡号的方法
2015/04/07 Javascript
jQuery插件formValidator实现表单验证
2016/05/23 Javascript
BootStrap无限级分类(无限极分类封装版)
2016/08/26 Javascript
快速移动鼠标触发问题及解决方法(ECharts外部调用保存为图片操作及工作流接线mouseenter和mouseleave)
2016/08/29 Javascript
jquery.Callbacks的实现详解
2016/11/30 Javascript
细说webpack源码之compile流程-入口函数run
2017/12/26 Javascript
webpack4 处理CSS的方法示例
2018/09/03 Javascript
JavaScript定时器常见用法实例分析
2019/11/15 Javascript
python定位xpath 节点位置的方法
2019/08/27 Python
python tkinter控件布局项目实例
2019/11/04 Python
Django+Celery实现动态配置定时任务的方法示例
2020/05/26 Python
python tkiner实现 一个小小的图片翻页功能的示例代码
2020/06/24 Python
Scrapy 配置动态代理IP的实现
2020/09/28 Python
HTML5在线预览PDF的示例代码
2017/09/14 HTML / CSS
英国PC组件和在线电脑商店:SCAN
2019/04/18 全球购物
英国电子专家:maplin
2019/09/04 全球购物
二年级体育教学反思
2014/01/15 职场文书
报告会主持词
2014/04/02 职场文书
星级党支部申报材料
2014/05/31 职场文书
村创先争优活动总结
2014/08/28 职场文书
个人批评与自我批评发言稿
2014/09/28 职场文书
Python WSGI 规范简介
2021/04/11 Python
python3实现Dijkstra算法最短路径的实现
2021/05/12 Python