Python 如何修改库的一个类以使其使用另一个库类的扩展?
短篇故事: 我想在一个流行的库中对main类和它所依赖的helper类的行为做一些细微的更改。我可以通过子类化轻松地扩展这两个类,但是我如何告诉顶级类使用我的helper类的扩展版本呢 MainClass通过简单的实例化(例如,helperItem=HelperClass())和从yield()生成HelperClass的实例。HelperClass与MainClass在同一模块中编码 更长: 对于Django表单,我希望生成一个嵌套字典,其中包含指定该表单HTML显示的数据。Django表单对象通过将字段对象包装到BoundField类中来生成HTML,该类具有访问字段数据结构以生成适当HTML字符串的方法 我想:Python 如何修改库的一个类以使其使用另一个库类的扩展?,python,django,oop,Python,Django,Oop,短篇故事: 我想在一个流行的库中对main类和它所依赖的helper类的行为做一些细微的更改。我可以通过子类化轻松地扩展这两个类,但是我如何告诉顶级类使用我的helper类的扩展版本呢 MainClass通过简单的实例化(例如,helperItem=HelperClass())和从yield()生成HelperClass的实例。HelperClass与MainClass在同一模块中编码 更长: 对于Django表单,我希望生成一个嵌套字典,其中包含指定该表单HTML显示的数据。Django表单对
- 扩展/修改表单以使用扩展版本的BoundField,以及
- 扩展表单以添加循环遍历其字段的方法 使命感 在每个上设置getHtmlSpec()
显然,我可以通过扩展表单来达到“字段”并生成这些内容,这可能是更好的设计。但这似乎更优雅,我很好奇,即使这不是最好的方法。这是设计类的一种丑陋的方法,我想还有一种更丑陋的方法可以绕过它:
from django.forms import forms
class MyBoundField(object):
pass
forms.BoundField = MyBoundField
下面是代码:。。。讨厌。