Sorry, your browser cannot access this site
This page requires browser support (enable) JavaScript
Learn more >

Gray-Ice

个人博客兼个人网站

什么是猴子补丁?”猴补丁(英语:Monkey patch)是一种很脏的编程技巧,用拼凑代码的方法修改程序逻辑。这种技巧也叫鸭子双关。[1]猴补丁意思是用类似双关的技巧拼凑出和常规程序相左的程序逻辑,这种技巧只会在运行时刻生效。猴补丁的出现说明程序本身设计有缺陷,它用在网页和数据库上就是SQL注入攻击,Unix Shell的flag使用不当也会产生类似的安全问题,比如将文件命名为“-x”形式,命令行就可能将文件名认作一个传递的参数而造成运行异常。” –wikipedia

其实就是在程序运行时修改类或模块。
那么代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class Test(object):

def func(self):
print("I'll tell you ", end='')


def monkey(self):
print("The truth.")


test1 = Test()
test1.func() # 此时程序输出的是I'll tell you
Test.func = monkey
test1.func() # 此时程序输出的是The truth.

其实就我个人的认知来说,如果用猴子补丁会导致程序逻辑的混乱,虽然作者本人也许不会受影响,但是其他人在维护代码的时候一定会骂他。。。写这篇博客只是因为觉得猴子补丁好玩,从C和C++回来后觉得python太有趣了,哈哈哈。
本篇完。

评论



愿火焰指引你