Python 如何修改库的一个类以使其使用另一个库类的扩展?

Python 如何修改库的一个类以使其使用另一个库类的扩展?,python,django,oop,Python,Django,Oop,短篇故事: 我想在一个流行的库中对main类和它所依赖的helper类的行为做一些细微的更改。我可以通过子类化轻松地扩展这两个类,但是我如何告诉顶级类使用我的helper类的扩展版本呢 MainClass通过简单的实例化(例如,helperItem=HelperClass())和从yield()生成HelperClass的实例。HelperClass与MainClass在同一模块中编码 更长: 对于Django表单,我希望生成一个嵌套字典,其中包含指定该表单HTML显示的数据。Django表单对

短篇故事:

我想在一个流行的库中对main类和它所依赖的helper类的行为做一些细微的更改。我可以通过子类化轻松地扩展这两个类,但是我如何告诉顶级类使用我的helper类的扩展版本呢

MainClass通过简单的实例化(例如,helperItem=HelperClass())和从yield()生成HelperClass的实例。HelperClass与MainClass在同一模块中编码

更长:

对于Django表单,我希望生成一个嵌套字典,其中包含指定该表单HTML显示的数据。Django表单对象通过将字段对象包装到BoundField类中来生成HTML,该类具有访问字段数据结构以生成适当HTML字符串的方法

我想:

  • 扩展/修改表单以使用扩展版本的BoundField,以及
  • 扩展表单以添加循环遍历其字段的方法 使命感 在每个上设置getHtmlSpec()
(这里我要强调的是重要的Django实现细节,比如是扩展表单还是基本表单,以及是扩展BoundField还是/和输入小部件。)


显然,我可以通过扩展表单来达到“字段”并生成这些内容,这可能是更好的设计。但这似乎更优雅,我很好奇,即使这不是最好的方法。

这是设计类的一种丑陋的方法,我想还有一种更丑陋的方法可以绕过它:

from django.forms import forms

class MyBoundField(object):
    pass

forms.BoundField = MyBoundField
下面是代码:。。。讨厌。