短篇小说:
我想在一个流行的库中对MainClass和它所依赖的HelperClass的行为稍作修改。我可以通过子类化轻松扩展,但是如何告诉顶级类使用我的扩展版助手类?
MainClass通过简单的实例化(例如,helperItem = HelperClass())和yield()生成HelperClass的实例。 HelperClass在与MainClass相同的模块中编码。
更长:
对于Django表单,我想生成一个嵌套字典,其中包含指定该表单的HTML显示的数据。 Django Form对象通过将Field对象包装在BoundField类中来生成HTML,该类具有到达Field数据结构以生成适当HTML字符串的方法。
我想:
(这里我正在讨论重要的Django实现细节,比如是否扩展Form或BaseForm,以及是否扩展BoundField或/和Input小部件。)
显然,我可以通过扩展Form来达到'fields'并生成这些东西,这可能是更好的设计。但这似乎更优雅,即使不是最好的方法,我也很好奇。
答案 0 :(得分:1)
这是设计课程的一种丑陋方式,我想有一种更为丑陋的方法可以解决这个问题:
from django.forms import forms
class MyBoundField(object):
pass
forms.BoundField = MyBoundField