“猴子补丁”就是指,在函数或对象已经定义之后,再去改变它们的行为。

举个例子:

import datetime
datetime.datetime.now = lambda: datetime.datetime(2012, 12, 12)

大部分情况下,这是种很不好的做法 - 因为函数在代码库中的行为最好是都保持一致。打“猴子补丁”的原因可能是为了测试。mock包对实现这个目的很有帮助。

为什么提这个问题

答对这个问题说明你对单元测试的方法有一定了解。你如果提到要避免“猴子补丁”,可以说明你不是那种喜欢花里胡哨代码的程序员(公司里就有这种人,跟他们共事真是糟糕透了),而是更注重可维护性。还记得KISS原则码?答对这个问题还说明你明白一些Python底层运作的方式,函数实际是如何存储、调用等等。

另外:如果你没读过mock模块的话,真的值得花时间读一读。这个模块非常有用。

本文首发于Python黑洞网,博客园同步更新

最新文章

  1. Android随笔之——Android时间、日期相关类和方法
  2. ITIL十大流程
  3. Lrc2Srt字幕转换精灵
  4. 黑马程序员——OC语言 内存管理
  5. 12个Icon图标资源网站
  6. windows安装composer方法和使用方法
  7. Java(17)异常
  8. Laravel 中实现是否关注
  9. Java-IO之FileReader和FileWriter
  10. lr_场景设计之知识点-集合点、loadgenerator
  11. 计算机名称改名之后,tfs连接问题
  12. Swagger UI 与SpringMVC的整合 II
  13. rpm打包tomcat
  14. MVC中修改Table值
  15. RN中移动组件开发
  16. 第十五章-class类文件结构
  17. 注解实现json序列化的时候自动进行数据脱敏
  18. 用idea简单创建web项目——两种方式
  19. MySQL内核整理(一)
  20. 4X4矩阵键盘扫描程序

热门文章

  1. python3-三个demo带你入门装饰器
  2. 【UR #5】怎样跑得更快
  3. 在centos上安装nodejs
  4. 【目录】linux 编程
  5. mui使用总结
  6. 【纪中集训】2019.08.10【省选组】模拟TJ
  7. The Second Scrum Meeting!
  8. JMeter ServerAgent服务器资源监控插件
  9. linux之-mysql数据库约束3
  10. Python之-在字典、列表、集合中刷选数据