当前位置: 首页 > 面试题库 >

猴子补丁Python类

贺正祥
2023-03-14
问题内容

我有一个类,位于一个单独的模块中,无法更改。

from module import MyClass

class ReplaceClass(object)
  ...

MyClass = ReplaceClass

除了此文件之外,这不会更改MyClass的其他任何位置。但是,如果我添加这样的方法

def bar():
   print 123

MyClass.foo = bar

这将起作用,并且foo方法将在其他任何地方都可用。

如何完全替换班级?


问题答案:
import module
class ReplaceClass(object):
    ....
module.MyClass = ReplaceClass


 类似资料:
  • 本文向大家介绍python 猴子补丁(monkey patch),包括了python 猴子补丁(monkey patch)的使用技巧和注意事项,需要的朋友参考一下 写了一段时间java切回写python偶尔会出现一些小麻烦,比如:在java中自定义对象变成json串很简单,调用一个方法就行,但同样的转换在python中却不太容易实现。在寻找python自定义对象转json串的过程中,接触到了猴子补

  • 问题内容: 猴子如何修补的功能。我正在尝试添加一个从页面发出的每个ajax请求返回时将被调用的函数。 我知道这听起来像一个可怕的主意,但是用例非常特殊。我想将特定的SDK与控制台(jqconsole)一起使用,但在不修改外部SDK的情况下显示控制台内ajax调用的状态和结果。 我看过这篇文章,它提供了很好的信息,但是没有任何关于猴子修补回调的内容,这似乎超出了我的JavaScript技能。 PS无

  • 本文向大家介绍Python猴子补丁Monkey Patch用法实例解析,包括了Python猴子补丁Monkey Patch用法实例解析的使用技巧和注意事项,需要的朋友参考一下 属性在运行时的动态替换,叫做猴子补丁(Monkey Patch)。 为什么叫猴子补丁 属性的运行时替换和猴子也没什么关系,关于猴子补丁的由来网上查到两种说法: 1.这个词原来为Guerrilla Patch,杂牌军、游击队,

  • 问题内容: 即使有可能,我也不想讨论这种方法的优点。我相信答案是“否”。但是也许有人会令我惊讶! 假设您有一个核心小部件类。它有一个方法,该方法返回一个高度。高度太大- 这导致按钮(例如)太大。您可以扩展DefaultWidget来创建自己的NiceWidget,并实现自己的形式以返回更好的大小。 现在,一个库类WindowDisplayFactory以相当复杂的方法实例化DefaultWidge

  • 问题内容: 我遇到了有关猴子修补Django的帖子: 我知道这不是理想的选择,最好通过单独的模型添加字段和函数。 话虽如此,我只想了解这将如何工作: 我将把monkey补丁代码放在哪里? 代码何时运行-仅运行一次?每个Python解释器启动一次?每个请求一次? 大概我仍然需要更改数据库架构。因此,如果我放下桌子运行,会“知道”是否已添加新字段吗?如果没有,如何更改架构? 问题答案: 您可以将其放置

  • Git 中的一些命令是以引入的变更即提交这样的概念为中心的,这样一系列的提交,就是一系列的补丁。 这些命令以这样的方式来管理你的分支。 git cherry-pick git cherry-pick 命令用来获得在单个提交中引入的变更,然后尝试将作为一个新的提交引入到你当前分支上。 从一个分支单独一个或者两个提交而不是合并整个分支的所有变更是非常有用的。 在 变基与拣选工作流 一节中描述和演示了