装饰器和 wrapt 模块的介绍已经结束,作为整个系列的最后一篇的实战篇,我们来实现在一开始我提出的一个需求 1. 应用场景 在我日常的开发过程中,经常要查询各
GrahamDumpleton wrapt blog 的翻译部分到此就结束。很可惜的是作者并没有把猴子补丁部分写完,查阅了 wrapt 的官方文档,上面只介绍了 wrapt 的装饰器,代理对象以及 synchronized 同步装饰器,也
前面我们已经决绝了猴子补丁的导入次序问题,但是这个解决方案有个前提,就是我们必需能修改应用程序代码,以在程序的最开始执行我们的注册函数。本节
本节我们就来解决如何在 Python 中打补丁的问题。 1. 猴子补丁的加载次序问题 在第 11 篇博客中,我们提到了应用猴子补丁时可能存在的问题。具体地说,如果需要被
前面我们说道过 Python 中使用猴子补丁典型情景之一就是使用模拟库来帮助执行单元测试,本节我们先把补丁和模块导入的相对次序问题放一放,先来看看如何使用
在之前 10 篇博客中,我们几乎完整的讨论了装饰器的实现。现在我们将焦点从装饰器转移到猴子补丁上来。 1. 猴子补丁 通常在Python中永远不应该做的事