Python学习笔记(实用技巧)

一、如何实现系统的灵活扩展
在实际的应用中,经常要考虑系统的扩展性。当一个系统定型并被打包发布后(甚至被转成了exe文件包后),想要在不破坏整体性的同时,又能方便的扩展(或调整)系统的功能,就像插件、补丁这些功能。
1. 使用类别名+外部文件来扩展内部类
原理:在代码编写过程中,注意使用类别名。即在类的定义完成后,给类赋一个标准别名,然后在类的实现时使用这个标准别名来操作。在扩展时,执行一个外部文件,这个文件中对原类做了扩展,并将标准别名赋给这个扩展类,就可以实现功能扩展了。
举个例子:
代码一:test.py
----------------------------------------------------------
import os
class OldClass:
def __init__(self):
print 'OldClass: init'
def Test(self, info):
print 'OldClass: ' + info
def __del__(self):
print 'OldClass: del'
# 定义了类OldClass,赋了别名TestClass
TestClass = OldClass
if os.path.exists('plugin.py'):
execfile('plugin.py')
if __name__ == '__main__':
T = TestClass()
T.Test('info')
T = None
print '-END-'
---------------------------------------------------------
代码二:plugin.py
---------------------------------------------------------
class NewClass(OldClass):
def Test(self, info):
print 'NewClass: ' + info
# 定义了OldClass的子类NewClass,赋了别名TestClass
TestClass = NewClass
---------------------------------------------------------
运行:在没有plugin.py时,执行了OldClass的Test方法,而在添加了plugin.py后,执行了NewClass的Test方法,这样我们只要修改外部文件plugin.py,就能达到不修改原始文件时扩展功能的目的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值