先看一段代码:
复制代码代码如下:
class T1(threading.Thread):
def __init__(self, a, b, c):
super(T1, self).__init__()
self.a = a
self.b = b
self.c = c
def run(self):
print self.a, self.b, self.c
代码定义了一个继承自threading.Thread的class,看这句
super(T1, self).__init__()
也有些人喜欢这么写
threading.Thread.__init__(self)
当然作用都是调用父类的构造函数,
巧用Python装饰器 免去调用父类构造函数的麻烦
。写了这么久的python代码,每次写到这都有重复造轮子的感觉。刚才突然想到装饰器这个好东西,试着写了个autoInitClass来帮助pythoner脱离苦海,免去手动调用父类构造函数的麻烦。
代码如下:
复制代码代码如下:
def autoInitClass(OldClass):
superClass = OldClass.mro()[1]
class NewClass(OldClass):
def __init__(*args):
self = args[0]
superClass.__init__(self)
apply(OldClass.__init__, args)
return NewClass
使用autoInitClass装饰器构造新类:
复制代码代码如下:
@autoInitClass
class T2(threading.Thread):
def __init__(self, a, b, c):
#不用再写super(T2, self).__init__()
self.a = a
self.b = b
self.c = c
def run(self):
print self.a, self.b, self.c
本文来自: itianda's blog ,转载请注明原文出处
您可能感兴趣的文章:
python重试装饰器示例
python装饰器使用方法实例
python 装饰器功能以及函数参数使用介绍
使用python装饰器验证配置文件示例
QQ空间 搜狐微博 人人网 开心网 百度搜藏更多
Tags:Python 装饰器
复制链接收藏本文打印本文关闭本文返回首页
上一篇:Python使用Socket(Https)Post登录百度的实现代码
下一篇:windows下wxPython开发环境安装与配置方法
相关文章
2009-09-09PHP webshell检查工具 python实现代码
2014-06-06Python程序员鲜为人知但你应该知道的17个问题
2014-06-06Python ORM框架SQLAlchemy学习笔记之关系映射实例
2013-12-12python获取糗百图片代码实例
2014-05-05从零学Python之引用和类属性的初步理解
2014-01-01python实现异步回调机制代码分享
2007-10-10推荐下python/ironpython:从入门到精通
2008-09-09Python splitlines使用技巧
2014-06-06python网络编程学习笔记(一)
2014-02-02python基础教程之lambda表达式使用方法
文章评论
最 近 更 新
Python群发邮件实例代码
python中将阿拉伯数字转换成中文的实现代
python函数缺省值与引用学习笔记分享
python zip文件 压缩
python 字典(dict)遍历的四种方法性能测试
python中文乱码的解决方法
理解python多线程(python多线程简明教程
Python使用稀疏矩阵节省内存实例
从零学Python之入门(二)基本数据类型
使用setup.py安装python包和卸载python包
热 点 排 行
Python入门教程 超详细1小时学会
python 中文乱码问题深入分析
比较详细Python正则表达式操作指
Python字符串的encode与decode研
Python open读写文件实现脚本
Python enumerate遍历数组示例应
Python 深入理解yield
Python+Django在windows下的开发
python 文件和路径操作函数小结
python 字符串split的用法分享