Python делает ли отступ): в конце функции в стиле pep8? - PullRequest
0 голосов
/ 18 июня 2020

Для примера объявления функции:

def foo(
        long_parameter_name_1, long_parameter_name_2 = "default value var 2",
        long_parameter_name_3 = "default value var 3", long_parameter_name_4 = "default value var 4"
        ):

Соответствует ли приведенный выше метод объявления функции рекомендациям по стилю pep8 как модифицированная версия приведенного ниже определения функции, чтобы обрабатывать параметры для строк длиной более 80 символов ? Я считаю его более читаемым для длинных строк со значениями по умолчанию, но в руководстве по стилю pep8 это условие не указано.

def foo(long_parameter_name_1, long_parameter_name_2 = "default value var 2",
        long_parameter_name_3 = "default value var 3", long_parameter_name_ = "default value var 4"):

1 Ответ

0 голосов
/ 18 июня 2020

PEP-8 позволяет оба; см. последний раздел обсуждения отступа . Однако он также рекомендует без пробелов вокруг = в аргументах ключевого слова и не требует такого большого отступа для параметров. Отступ должен совпадать, но если первый параметр находится в новой строке, он не должен иметь отступ после открытия (.

Либо

def foo(
    long_parameter_name_1, long_parameter_name_2="default value var 2",
    long_parameter_name_3="default value var 3", long_parameter_name_4="default value var 4"
    ):

, или

def foo(
    long_parameter_name_1, long_parameter_name_2="default value var 2",
    long_parameter_name_3="default value var 3", long_parameter_name_4="default value var 4"):

приемлемо.


Я бы сделал go на один шаг дальше и рекомендовал бы в любом случае ограничить себя одним параметром на строку.

def foo(
    long_parameter_name_1,
    long_parameter_name_2="default value var 2",
    long_parameter_name_3="default value var 3",
    long_parameter_name_4="default value var 4"
    ):

или

def foo(
    long_parameter_name_1,
    long_parameter_name_2="default value var 2",
    long_parameter_name_3="default value var 3",
    long_parameter_name_4="default value var 4"):

, но с предпочтением первого. (В первом случае вы также можете wi sh, чтобы включить необязательный завершающий , после последнего аргумента, чтобы упростить различия, если вы никогда не добавляете или не удаляете параметр.)

...