MonkeyPatch简介
Submitted by
panjy.
on 2006-12-17 00:48.
介绍Python代码修补
介绍Python代码修补
Mokey Patch
不需要修改源代码:
from SomeOtherProduct.SomeModule import SomeClass
old_speak = SomeClass.speak
def speak(self):
return "ook ook eee eee eee!" + old_speak(self)
SomeClass.speak = speak
SomeClass.__old_speak = old_speak
又爱又恨的猴子
- 修补竞争:如果2个模块同时修补1个方法?
- 解决问题更困难
- 何时退出舞台?
Monkey发展历史
来自Zope公司:
起始: guerilla patch: 游击的,随意的
误解: gorilla patch
大猩猩, 壮而残暴的男人, <俚> 歹徒(尤指使用暴力者)
改良: monkey patch
继续困惑: Ruby / RoR