разница между использованием super() и super(ViewName,self) [дубликат]

avatar
Mohamed Benkedadra
8 апреля 2018 в 00:21
64
1
0

Я использовал в общих представлениях (CBV)

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

но я заметил, что люди здесь делают:

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

Есть ли разница?

Источник

Ответы (1)

avatar
polo
8 апреля 2018 в 00:32
2

Разница заключается в синтаксисе, поддерживаемом версией 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