zoukankan      html  css  js  c++  java
  • python复杂多继承及super配合使用案例

    class ContextMixin(object):
        def get_context_data(self, **kwargs):
            print('contextmixin')
    
    class FormMixin(ContextMixin):
        def get_context_data(self, **kwargs):
            print('formmixin')
            super(FormMixin, self).get_context_data(**kwargs)
    
    class SingleObjectMixin(ContextMixin):
        def get_context_data(self, **kwargs):
            print('singleobjectmixin')
            super(SingleObjectMixin, self).get_context_data(**kwargs)
    
    class ModelFormMixin(FormMixin, SingleObjectMixin):
        pass
    
    class View():
        pass
    
    class ProcessFormView(View):
        def get(self):
            self.get_context_data()
    
    class BaseUpdateView(ModelFormMixin, ProcessFormView):
        pass
    
    
    bv = BaseUpdateView().get()
    mro = BaseUpdateView.__mro__
    for m in mro:
        print(m)

    输出结果:

    formmixin
    singleobjectmixin
    contextmixin
    <class '__main__.BaseUpdateView'>
    <class '__main__.ModelFormMixin'>
    <class '__main__.FormMixin'>
    <class '__main__.SingleObjectMixin'>
    <class '__main__.ContextMixin'>
    <class '__main__.ProcessFormView'>
    <class '__main__.View'>
    <class 'object'>
  • 相关阅读:
    udev 禁止某些驱动自动加载
    AT91SAM9XEK ramdisk 启动笔记
    MTD 工具使用
    kmp问题
    野指针 空指针 通用指针
    manacher算法实现
    manacher算法
    strcpy和strlen
    冒泡排序
    C++的重载(overload)与重写(override
  • 原文地址:https://www.cnblogs.com/Fmaj7/p/13731612.html
Copyright © 2011-2022 走看看