关于python:使用super()和super(viewname,self)的区别

difference between using super() and super(ViewName,self)

本问题已经有最佳答案,请猛点这里访问。

我一直在通用视图(CBV)中使用

1
2
def get_context_data(self, **kwargs):
    context = super().get_context_data(**kwargs)

但我注意到这里的人会:

1
context = super(ClassViewName,self).get_context_data(**kwargs)

有什么区别吗?


不同之处在于Python版本支持的语法。在python 3中,您将使用

context = super().get_context_data(**kwargs)

在python 2中,您将使用

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

这对于任何super方法调用都是正确的。

参见:http://www.pythonforbeginners.com/super/working-python-super-function