手机
当前位置:查字典教程网 >脚本专栏 >python >巧用Python装饰器 免去调用父类构造函数的麻烦
巧用Python装饰器 免去调用父类构造函数的麻烦
摘要:先看一段代码:复制代码代码如下:classT1(threading.Thread):def__init__(self,a,b,c):supe...

先看一段代码:

复制代码 代码如下:

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代码,每次写到这都有重复造轮子的感觉。刚才突然想到装饰器这个好东西,试着写了个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连接mysql调用存储过程示例

python批量导出导入MySQL用户的方法

用python分割TXT文件成4K的TXT文件

Python 调用DLL操作抄表机

浅析python 内置字符串处理函数的使用方法

Python查询Mysql时返回字典结构的代码

python生成指定长度的随机数密码

使用python统计文件行数示例分享

python自动化工具日志查询分析脚本代码实现

精品推荐
分类导航