社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  问与答

请教一个关于super()的问题

易冷天涯 • 10 年前 • 7507 次点击  
class BaseMixin(object):

    def get_context_data(self, *args, **kwargs):
        context = super(BaseMixin, self).get_context_data(**kwargs)
        try:
            context['categories'] = Category.available_list()
            context['widgets'] = Widget.available_list()
            context['recently_posts'] = Post.get_recently_posts(RECENTLY_NUM)
            context['hot_posts'] = Post.get_hots_posts(HOT_NUM)
            context['pages'] = Page.objects.filter(status=0)
            context['online_num'] = len(cache.get('online_ips'))
        except Exception as e:
            logger.exception(u'加载基本信息出错[%s]!', e)

        return context

学习别人的代码,发现这么一个class。

别的地方出现的super(BaseMixin, self).get_context_data(**kwargs)是在继承这个class。那么这个class自己里面这一行

        context = super(BaseMixin, self).get_context_data(**kwargs)

是什么意思?自己是自己的父类?新手感觉有点乱了。

后面又return context。return的又是什么呢?

谢谢大家!

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/269
 
7507 次点击  
文章 [ 3 ]  |  最新文章 9 年前
JackyXiong
Reply   •   1 楼
JackyXiong    9 年前

那请问context['categories'] = Category.available_list() 的含义是什么呢?不明白available_list()这个东西。

易冷天涯
Reply   •   2 楼
易冷天涯    10 年前

@danpy5

这里的BaseMixin直接是BaseMixin(object),那个例子是FooChlid(FooParent)。FooChild继承了自己的父类FooParent里的方法,这个好理解。但是难道BaseMixin继承了object里面的方法?

danpy5
Reply   •   3 楼
danpy5    10 年前

是自己调用自己的父类,具体看一下http://www.360doc.com/content/13/0306/15/9934052_269664772.shtml