Python面试题之“猴子补丁”(monkey patching)指的是什么?这种做法好吗?
“猴子补丁”就是指,在函数或对象已经定义之后,再去改变它们的行为。
举个例子:
import datetime datetime.datetime.now = lambda: datetime.datetime(2012, 12, 12)
大部分情况下,这是种很不好的做法 - 因为函数在代码库中的行为最好是都保持一致。打“猴子补丁”的原因可能是为了测试。mock
包对实现这个目的很有帮助。
为什么提这个问题?
答对这个问题说明你对单元测试的方法有一定了解。你如果提到要避免“猴子补丁”,可以说明你不是那种喜欢花里胡哨代码的程序员(公司里就有这种人,跟他们共事真是糟糕透了),而是更注重可维护性。还记得KISS原则码?答对这个问题还说明你明白一些Python底层运作的方式,函数实际是如何存储、调用等等。
另外:如果你没读过mock
模块的话,真的值得花时间读一读。这个模块非常有用。
本文首发于Python黑洞网,csdn同步更新
Python面试题之“猴子补丁”(monkey patching)指的是什么?这种做法好吗?相关推荐
- python的猴子补丁(Monkey Patching)
0. 参考文档 参考文档如下: https://achowdhary.com/monkey-patching/ https://www.cnblogs.com/xp1315458571/p/16049 ...
- 27.Python中的猴子补丁 (Monkey Patching)
<Python编程的术与道:Python语言进阶>视频课程 <Python编程的术与道:Python语言进阶>视频课程链接:https://edu.csdn.net/cours ...
- 猴子补丁 - Monkey Patching
0 猴子补丁 - Monkey Patching 1 定义, 2 猴子补丁(monkey patching) 3 在运行时动态修改模块.类或函数,通常是添加功能或修正缺陷.猴子补丁在代码运行时 4 ( ...
- 猴子补丁(Monkey Patching)
猴子补丁是我在面试的时候接触的一到题,学python的时候,我根本就没有听说这个概念!那接下来我们来分析一下: 1.什么是猴子补丁? 2.猴子补丁的功能? 3.猴子补丁的应用场景? 一.什么是猴子补丁 ...
- python画猴子_Python猴子补丁Monkey Patch用法实例解析
属性在运行时的动态替换,叫做猴子补丁(Monkey Patch). 为什么叫猴子补丁 属性的运行时替换和猴子也没什么关系,关于猴子补丁的由来网上查到两种说法: 1.这个词原来为Guerrilla Pa ...
- python猴子补丁_Python猴子补丁Monkey Patch用法实例解析
属性在运行时的动态替换,叫做猴子补丁(Monkey Patch). 为什么叫猴子补丁 属性的运行时替换和猴子也没什么关系,关于猴子补丁的由来网上查到两种说法: 1.这个词原来为Guerrilla Pa ...
- python猴子补丁是什么_什么是Python的monkeypatch(猴子补丁)?
这个问题是有一次面试的时候问到的,当时确实第一次听说这个,单纯只是非常好奇,于是就去了解了一下. 在维基百科上找到了:我理解的就是Python的一种运行时的机制,简单来说就是这样一个效果. >& ...
- 什么是猴子补丁(monkey patch)
monkey patch指的是在运行时动态替换,一般是在startup的时候. 用过gevent就会知道,会在最开头的地方gevent.monkey.patch_all();把标准库中的thread/ ...
- 50道必备的Python面试题 (建议点赞)
在过去的2021年,Python赢得了年度TIOBE编程语言奖,成为 过去一年最受欢迎的编程语言.在数据科学和机器学习等领域中,被广泛使用. 备战"金三银四",子冉给大家整理了50 ...
最新文章
- 头发为什么会从中间断掉_谈谈保养头发的方法,教你如何让它变得更加健康
- Automatic Reference Counting
- 去越南旅游一个人玩一个月需要多少人民币?
- Python 开发工具集:关于文档、测试、调试、程序的优化和分析
- net472无法建立到信任_是否还会信任,那个曾经背叛过自己的人
- Springboot实现销售团队管理系统
- qpsk频谱图matlab,QPSK调制得出的调制信号频谱波形多了一个点频信号
- compoundbutton(compoundbutton是什么意思)
- 数据挖掘案例(2):用户画像
- python中npy文件的读取与保存
- P卡、worldfirst、连连跨境电商收款哪家好?
- GS企业管理软件运用
- Delaunay三角网构建,并进行可视化
- jfinal整合IJPay paypal支付
- nowcoder 90 K 密码
- php老师把毕生的功力,为了表现雨下的凶残程度,网友都使出了毕生的功力
- 高德地图开发者平台获取sHA1值
- SAP:ZSD010 Download Requirements Plan Data
- tcla919刷机成功!!!
- 神州数码易拓TIPTOP ERP查询作业模板-2个单头并排2个单身维护作业
热门文章
- 10月17日Servlet培训日记
- no target device found怎么解决_Linux 使用Unzip提示write error (disk full?)的解决方法
- python执行循环内存变大_python – 为什么我的循环在每次迭代时需要更多内存?...
- (90)FPGA十进制计数器设计-面试必问(十四)(第18天)
- (17)System Verilog禁止类中所有变量随机属性
- Verilog实现3分频实例
- kafka to mysql_Flink实现Kafka到Mysql的Exactly-Once
- case when 子查询_标准SQL——子查询、分组查询、多表联查
- 计算机知识培训感言,计算机培训的心得体会
- cortex_m0架构(顶层AHB_Lite接口)