如何包装long super()调用以符合PEP-8?

时间:2013-11-11 12:09:34

标签: python pep8

我有以下代码:

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

如何包装它以使其不超过78个字符?目前,限制发生在*args之前。

我正在使用Python 2.7。

4 个答案:

答案 0 :(得分:5)

您可以将super()的结果存储在本地名称中:

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

答案 1 :(得分:1)

我做:

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

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

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

答案 2 :(得分:1)

我会在左括号后面换行:

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

幸运的是,这只是在足够短的范围内。一般来说,我尽可能在打开括号后打破。如果方法名称稍长,我会将super(ExtendedUserAdmin, self)的本地名称引入为@MartijnPieters did

答案 3 :(得分:0)

我经常这样做:

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

首先看一下超级括号中的内容对我不感兴趣,就像在python3中更像是

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