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

举个例子:

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

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

为什么提这个问题

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

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

本文首发于Python黑洞网,csdn同步更新

Python面试题之“猴子补丁”(monkey patching)指的是什么?这种做法好吗?相关推荐

  1. python的猴子补丁(Monkey Patching)

    0. 参考文档 参考文档如下: https://achowdhary.com/monkey-patching/ https://www.cnblogs.com/xp1315458571/p/16049 ...

  2. 27.Python中的猴子补丁 (Monkey Patching)

    <Python编程的术与道:Python语言进阶>视频课程 <Python编程的术与道:Python语言进阶>视频课程链接:https://edu.csdn.net/cours ...

  3. 猴子补丁 - Monkey Patching

    0 猴子补丁 - Monkey Patching 1 定义, 2 猴子补丁(monkey patching) 3 在运行时动态修改模块.类或函数,通常是添加功能或修正缺陷.猴子补丁在代码运行时 4 ( ...

  4. 猴子补丁(Monkey Patching)

    猴子补丁是我在面试的时候接触的一到题,学python的时候,我根本就没有听说这个概念!那接下来我们来分析一下: 1.什么是猴子补丁? 2.猴子补丁的功能? 3.猴子补丁的应用场景? 一.什么是猴子补丁 ...

  5. python画猴子_Python猴子补丁Monkey Patch用法实例解析

    属性在运行时的动态替换,叫做猴子补丁(Monkey Patch). 为什么叫猴子补丁 属性的运行时替换和猴子也没什么关系,关于猴子补丁的由来网上查到两种说法: 1.这个词原来为Guerrilla Pa ...

  6. python猴子补丁_Python猴子补丁Monkey Patch用法实例解析

    属性在运行时的动态替换,叫做猴子补丁(Monkey Patch). 为什么叫猴子补丁 属性的运行时替换和猴子也没什么关系,关于猴子补丁的由来网上查到两种说法: 1.这个词原来为Guerrilla Pa ...

  7. python猴子补丁是什么_什么是Python的monkeypatch(猴子补丁)?

    这个问题是有一次面试的时候问到的,当时确实第一次听说这个,单纯只是非常好奇,于是就去了解了一下. 在维基百科上找到了:我理解的就是Python的一种运行时的机制,简单来说就是这样一个效果. >& ...

  8. 什么是猴子补丁(monkey patch)

    monkey patch指的是在运行时动态替换,一般是在startup的时候. 用过gevent就会知道,会在最开头的地方gevent.monkey.patch_all();把标准库中的thread/ ...

  9. 50道必备的Python面试题 (建议点赞)

    在过去的2021年,Python赢得了年度TIOBE编程语言奖,成为 过去一年最受欢迎的编程语言.在数据科学和机器学习等领域中,被广泛使用. 备战"金三银四",子冉给大家整理了50 ...

最新文章

  1. 头发为什么会从中间断掉_谈谈保养头发的方法,教你如何让它变得更加健康
  2. Automatic Reference Counting
  3. 去越南旅游一个人玩一个月需要多少人民币?
  4. Python 开发工具集:关于文档、测试、调试、程序的优化和分析
  5. net472无法建立到信任_是否还会信任,那个曾经背叛过自己的人
  6. Springboot实现销售团队管理系统
  7. qpsk频谱图matlab,QPSK调制得出的调制信号频谱波形多了一个点频信号
  8. compoundbutton(compoundbutton是什么意思)
  9. 数据挖掘案例(2):用户画像
  10. python中npy文件的读取与保存
  11. P卡、worldfirst、连连跨境电商收款哪家好?
  12. GS企业管理软件运用
  13. Delaunay三角网构建,并进行可视化
  14. jfinal整合IJPay paypal支付
  15. nowcoder 90 K 密码
  16. php老师把毕生的功力,为了表现雨下的凶残程度,网友都使出了毕生的功力
  17. 高德地图开发者平台获取sHA1值
  18. SAP:ZSD010 Download Requirements Plan Data
  19. tcla919刷机成功!!!
  20. 神州数码易拓TIPTOP ERP查询作业模板-2个单头并排2个单身维护作业

热门文章

  1. 10月17日Servlet培训日记
  2. no target device found怎么解决_Linux 使用Unzip提示write error (disk full?)的解决方法
  3. python执行循环内存变大_python – 为什么我的循环在每次迭代时需要更多内存?...
  4. (90)FPGA十进制计数器设计-面试必问(十四)(第18天)
  5. (17)System Verilog禁止类中所有变量随机属性
  6. Verilog实现3分频实例
  7. kafka to mysql_Flink实现Kafka到Mysql的Exactly-Once
  8. case when 子查询_标准SQL——子查询、分组查询、多表联查
  9. 计算机知识培训感言,计算机培训的心得体会
  10. cortex_m0架构(顶层AHB_Lite接口)