这个问题在这里已经有了答案:
What is a mixin, and why are they useful?
(16 个回答)
4 个月前关闭。
抱歉,如果这是一个愚蠢的问题,但我无法通过搜索找到它。我有 Python 代码,效果如下:
class CustomListView(ListView):
def dispatch(self, request : HttpRequest, *args, **kwargs):
# ... long blurb doing something with request and super, e.g.
return super().dispatch(request, *args, **kwargs)
class CustomDetailView(DetailView):
def dispatch(self, request : HttpRequest, *args, **kwargs):
# ... long blurb doing something with request and super, e.g.
return super().dispatch(request, *args, **kwargs)
(这是在 Django 的上下文中,但我认为这无关紧要。)这两个
dispatch
功能完全一样,所以我觉得这是公然违反DRY原则。但问题是因为super()
使用,我不知道如何只写一次这个函数并让继承工作,假设 super
被调用了很多次。处理这个问题的最佳方法是什么?
最佳答案
只是为了将其标记为已解决,我正在寻找的相关关键字是 mixins。评论中有几个链接,一个指向 past SO answer和一到Django mixins specifically .谢谢大家。
关于python - 在 Python 中使用 super() 进行 DRY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68250567/