Что мотивирует политику «неприсоединения» ПКП 8? - PullRequest
0 голосов
/ 06 февраля 2019

PEP 8 имеет специальное указание против пробелов вокруг операторов для выравнивания:

Нет:

x             = 1
y             = 2
long_variable = 3

Если я правильно понимаю, то также рекомендуется следующее:

salaries = {
    "Alice": 1500,
    "Bob":   1300,
    #      ^^ extra whitespace
}

Для чего полезны эти конкретные рекомендации?

1 Ответ

0 голосов
/ 06 февраля 2019

Это правило было частью оригинального эссе Гвидо , опубликованного в 1998 , где он заявляет:

(Не пытайтесь спорить со мной по любому из вышеперечисленных вопросов -- Я привык к этому стилю за 15 лет.)

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

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

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

Или более поздний редактор может отказаться от возможности перенастроить дополнительные записи.Проект Wine dlls/msi/msipriv.h файл начал хорошо выровнен , но более время несоответствия закрадываются, и вы получаетенемного беспорядка .

Далее, выравнивание не обязательно облегчает чтение кода;с достаточным количеством пробелов между ними вы можете легко неправильно понять, какое значение идет с каким именем.

В то же время PEP 8 является директивой .Сам документ гласит: :

Глупая последовательность - это хобгоблин маленьких умов

[...]

Однако, когдабыть непоследовательным - иногда рекомендации по стилю просто не применимы.В случае сомнений используйте свое лучшее суждение.Посмотрите на другие примеры и решите, что выглядит лучше.

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

Некоторые частиСтандартная библиотека Python нарушает это конкретное правило (и да, это отражение Python в примере проекта Wine выше; этот пример был импортирован из внешнего проекта несколько лет назад ), и есть другиепримеры нарушенных правил PEP8 там по историческим причинам , но иногда в некоторых, ограниченных областях , нарушение правил может имеет смысл.

...