Разница между использованием super() и super(ViewName,self)

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

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

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

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

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

1 ответ

Решение

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

Другие вопросы по тегам