Как обернуть длинный вызов super(), чтобы он соответствовал PEP-8?

У меня есть следующий код:

template_response = super(ExtendedUserAdmin, self).render_change_form(*args, **kwargs)

Как мне обернуть его, чтобы он не превышал 78 символов? В настоящее время ограничение происходит прямо перед *args.

Я использую Python 2.7.


person linkyndy    schedule 11.11.2013    source источник
comment
В Python 3 удалите аргументы super(): template_response = super().render_change_form(*args, **kwargs).   -  person Martijn Pieters    schedule 11.11.2013
comment
Нажмите Enter после super(.   -  person RemcoGerlich    schedule 11.11.2013
comment
Так ли это важно - строка из 86 символов? Вряд ли это дилемма... Как насчет того, чтобы просто назвать ваш var tr? :П   -  person Jon Clements♦    schedule 11.11.2013


Ответы (3)


Вы можете сохранить результат super() в локальном имени:

sproxy = super(ExtendedUserAdmin, self)
template_response = sproxy.render_change_form(*args, **kwargs)
person Martijn Pieters    schedule 11.11.2013

Я бы обернул после открывающей скобки:

class X:
    def render_change_form(self, *args, **kwargs):
        template_response = super(ExtendedUserAdmin, self).render_change_form(
            *args, **kwargs)

К счастью, этого времени достаточно, чтобы уложиться в установленные пределы. В общем, я ломаю после открытия круглых скобок, когда это возможно. Если бы имя метода было немного длиннее, я бы ввел локальное имя для super(ExtendedUserAdmin, self), как это сделал @MartijnPieters.

person D.Shawley    schedule 11.11.2013

Я часто делаю:

template_response = super(ExtendedUserAdmin, self
                          ).render_change_form(*args, **kwargs)

На первый взгляд то, что находится в суперкруглых скобках, меня не интересует, так это больше похоже на python3

template_response = super().render_change_form(*args, **kwargs)
person Yannick    schedule 26.02.2014