Python面试题之“猴子补丁”(monkey patching)指的是什么?这种做法好吗?
程序员文章站
2022-06-22 10:54:15
“猴子补丁”就是指,在函数或对象已经定义之后,再去改变它们的行为。 举个例子: import datetime datetime.datetime.now = lambda: datetime.datetime(2012, 12, 12) 大部分情况下,这是种很不好的做法 - 因为函数在代码库中的行 ......
“猴子补丁”就是指,在函数或对象已经定义之后,再去改变它们的行为。
举个例子:
import datetime datetime.datetime.now = lambda: datetime.datetime(2012, 12, 12)
大部分情况下,这是种很不好的做法 - 因为函数在代码库中的行为最好是都保持一致。打“猴子补丁”的原因可能是为了测试。mock
包对实现这个目的很有帮助。
为什么提这个问题?
答对这个问题说明你对单元测试的方法有一定了解。你如果提到要避免“猴子补丁”,可以说明你不是那种喜欢花里胡哨代码的程序员(公司里就有这种人,跟他们共事真是糟糕透了),而是更注重可维护性。还记得kiss原则码?答对这个问题还说明你明白一些python底层运作的方式,函数实际是如何存储、调用等等。
另外:如果你没读过mock
模块的话,真的值得花时间读一读。这个模块非常有用。
本文首发于python黑洞网,博客园同步更新
下一篇: 自荐一个 element 表单代码生成器