巧用Python装饰器 免去调用父类构造函数的麻烦 -电脑资料

电脑资料 时间:2019-01-01 我要投稿
【www.unjs.com - 电脑资料】

   

    先看一段代码:

    复制代码代码如下:

    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的用法分享

最新文章