在我的 Django 应用程序中,我通过pip. 我需要覆盖位于site-packages/module/views.py. 我假设,我需要在我的自定义模块目录中导入这个模块,并简单地继承类和覆盖方法。
最好的方法是什么?如何在不在site-packages目录中编写代码的情况下正确执行此操作?
您所追求的通常称为猴子修补。
import some_module
def my_method(self):
pass
some_module.SomeClass.a_method = my_method
Run Code Online (Sandbox Code Playgroud)
但是要小心,根据方法和库初始化的性质,修补方法可能为时已晚。例如,如果您想要修补的方法在模块加载时被调用,您将永远无法在它被调用之前修补它。
在应用程序启动时尽早尝试修补有问题的类
| 归档时间: |
|
| 查看次数: |
1865 次 |
| 最近记录: |