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程序中设置HTTP代理
Nov 06 Python
python导出chrome书签到markdown文件的实例代码
Dec 27 Python
Python决策树和随机森林算法实例详解
Jan 30 Python
DRF跨域后端解决之django-cors-headers的使用
Jan 27 Python
python函数的万能参数传参详解
Jul 26 Python
Python facenet进行人脸识别测试过程解析
Aug 16 Python
Python jieba库用法及实例解析
Nov 04 Python
基于Python共轭梯度法与最速下降法之间的对比
Apr 02 Python
python3用PyPDF2解析pdf文件,用正则匹配数据方式
May 12 Python
python有几个版本
Jun 17 Python
python 无损批量压缩图片(支持保留图片信息)的示例
Sep 22 Python
Python的三个重要函数详解
Jan 18 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
10个可以简化php开发过程的MySQL工具
2010/04/11 PHP
PHP数据过滤的方法
2013/10/30 PHP
一个php短网址的生成代码(仿微博短网址)
2014/05/07 PHP
MySql数据库查询结果用表格输出PHP代码示例
2015/03/20 PHP
PHP常见数组函数用法小结
2016/03/21 PHP
PHP获取文本框、密码域、按钮的值实例代码
2017/04/19 PHP
Jquery插件写法笔记整理
2012/09/06 Javascript
javascript 全选与全取消功能的实现代码
2012/12/23 Javascript
Js操作树节点自动折叠展开的几种方法
2014/05/05 Javascript
Vue-Router进阶之滚动行为详解
2017/09/13 Javascript
Angular4实现鼠标悬停3d倾斜效果
2017/10/25 Javascript
微信小程序网络请求封装示例
2018/07/24 Javascript
vue项目打包后上传至GitHub并实现github-pages的预览
2019/05/06 Javascript
JavaScript实现京东快递单号查询
2020/11/30 Javascript
vue调用微信JSDK 扫一扫,相册等需要注意的事项
2021/01/03 Vue.js
[01:38]DOTA2辉夜杯 欢乐的观众现场采访
2015/12/26 DOTA
深入理解Python中的元类(metaclass)
2015/02/14 Python
django admin 后台实现三级联动的示例代码
2018/06/22 Python
python 读取目录下csv文件并绘制曲线v111的方法
2018/07/06 Python
浅谈django三种缓存模式的使用及注意点
2018/09/30 Python
python如何从文件读取数据及解析
2019/09/19 Python
tensorflow求导和梯度计算实例
2020/01/23 Python
Python2 与Python3的版本区别实例分析
2020/03/30 Python
ECCO爱步官方旗舰店:丹麦鞋履品牌
2018/01/02 全球购物
美国马匹用品和骑马配件购物网站:Horse.com
2018/01/08 全球购物
Skyscanner台湾:全球知名的旅行比价引擎
2018/07/01 全球购物
Beauty Expert美国/加拿大:购买奢侈美容产品
2018/12/05 全球购物
美国儿童珠宝在线零售商:Loveivy
2019/05/22 全球购物
Tomcat Mysql datasource数据源配置
2015/12/28 面试题
职工运动会邀请函
2014/02/02 职场文书
保险专业自荐信范文
2014/02/20 职场文书
学校先进集体事迹材料
2014/05/31 职场文书
应届生求职信范文
2014/06/30 职场文书
大学生安全责任书
2014/07/25 职场文书
不同意离婚上诉状
2015/05/23 职场文书
Golang 链表的学习和使用
2022/04/19 Golang