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使用BeautifulSoup分析网页信息的方法
Apr 04 Python
Python函数中的函数(闭包)用法实例
Mar 15 Python
Pandas GroupBy对象 索引与迭代方法
Nov 16 Python
基于python中__add__函数的用法
Nov 25 Python
python数据预处理 :数据共线性处理详解
Feb 24 Python
Python post请求实现代码实例
Feb 28 Python
Django Admin设置应用程序及模型顺序方法详解
Apr 01 Python
详解pandas.DataFrame.plot() 画图函数
Jun 14 Python
python操作redis数据库的三种方法
Sep 10 Python
如何利用pycharm进行代码更新比较
Nov 04 Python
Pycharm安装Qt Design快捷工具的详细教程
Nov 18 Python
使用Python通过oBIX协议访问Niagara数据的示例
Dec 04 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 异常处理实现代码
2009/03/10 PHP
php支付宝手机网页支付类实例
2015/03/04 PHP
浅析Yii2 gridview实现批量删除教程
2016/04/22 PHP
Laravel学习教程之本地化模块
2017/08/18 PHP
php实现支持中文的文件下载功能示例
2017/08/30 PHP
用window.location.href实现刷新另个框架页面
2007/03/07 Javascript
Javascript根据指定下标或对象删除数组元素
2012/12/21 Javascript
javascript对中文按照拼音排序代码
2014/08/20 Javascript
浅谈Javascript中匀速运动的停止条件
2014/12/19 Javascript
JavaScript使用slice函数获取数组部分元素的方法
2015/04/06 Javascript
JavaScript判断数组是否包含指定元素的方法
2015/07/01 Javascript
js实现向右横向滑出的二级菜单效果
2015/08/27 Javascript
RequireJS入门一之实现第一个例子
2015/09/30 Javascript
JavaScript实现同时调用多个函数的方法
2015/11/09 Javascript
javascript实现的左右无缝滚动效果
2016/09/19 Javascript
Vue 2.5 Level E 发布了: 新功能特性一览
2017/10/24 Javascript
vue+vue-validator 表单验证功能的实现代码
2017/11/13 Javascript
在vue中使用Base64转码的案例
2020/08/07 Javascript
使用python实现ANN
2017/12/20 Python
详解Python使用Plotly绘图工具,绘制甘特图
2019/04/02 Python
Django时区详解
2019/07/24 Python
python集合删除多种方法详解
2020/02/10 Python
CSS3 3D酷炫立方体变换动画的实现
2019/03/26 HTML / CSS
PHP解析URL是哪个函数?怎么用?
2013/05/09 面试题
大学生的网上创业计划书
2013/12/31 职场文书
如何写好升职自荐信
2014/01/06 职场文书
城市精细化管理实施方案
2014/03/04 职场文书
学生会副主席竞聘书
2014/03/31 职场文书
协议书的格式
2014/04/23 职场文书
初二学习计划书范文
2014/04/27 职场文书
学校领导班子四风问题整改意见
2014/10/02 职场文书
2014年学校食堂工作总结
2014/11/25 职场文书
预备党员半年考察意见
2015/06/01 职场文书
商业计划书格式、范文
2019/03/21 职场文书
MySQL常见优化方案汇总
2022/01/18 MySQL
win10重装系统后上不了网怎么办 win10重装系统网络故障的解决办法
2022/07/23 数码科技