在我的Django应用程序中,我通过pip
安装了一个模块。我需要覆盖site-packages/module/views.py
中的某个方法。我假设,我需要在我的自定义模块目录中导入此模块,并简单地继承class和override方法。
最好的方法是什么?如果不在site-packages
目录中编写代码,我该怎么做呢?
答案 0 :(得分:4)
您所追求的通常被称为monkey patching。
import some_module
def my_method(self):
pass
some_module.SomeClass.a_method = my_method
小心但是根据方法和库初始化的性质,修补方法可能为时已晚。例如,如果在加载模块时调用要修补的方法,则在调用模块之前将永远无法对其进行修补。
在应用程序启动中尽早尝试并修补相关课程