На протяжении многих лет, чем больше питонов я пишу, тем больше я соглашаюсь с большинством рекомендаций, хотя я последовательно и намеренно ломаю некоторые по своим собственным причинам.
Мне было бы интересно узнать, что в PEP 8 (или другие PEP тоже могут быть) люди религиозно придерживаются и почему и что люди находят неудобными или неадекватными.
В моем случае (и на работе вообще) есть только несколько вещей, от которых мы отклоняемся:
-
Подчеркнуть отдельные имена нижнего регистра, я могу увидеть его, так как он будет непременно согласован, но мы склонны использовать lowerCamelCase, даже если он иногда вводит некоторые несоответствия (например, частично или неправильно заглавные аббревиатуры и следующие слова, которые часто сводятся к звонкам). В основном из-за того, что почти все API-интерфейсы мы обычно используем, используйте camelCase (некоторые верхние, некоторые ниже), и потому по какой-то причине мне становится легче читать и, как правило, резервировать символы подчеркивания как разделительные токены или предписанные манипуляции/затенения.
-
Я все еще не могу понять, как PEP предписывает внутренние объекты. new и init Я обычно ухожу прямо под классом без пустых строк, так как я всегда хочу их прочитать прямо там с именем класса и args, методами, которые способствуют одинаковой функциональности в классе (скажем, init, get и set из того же атрибута или набора атрибутов). Я разделяю только одно пространство, и мне нравится три пробела между классами, а два между методами, которые я бы не мысленно не суммировал на карте этого объекта. Это опять же чисто для визуального воздействия и удобочитаемости кода. Я нахожу это очень компактное содержимое внутри управления потоком, и этот вид промежутка между методами и объектами неизменно приводит мой взгляд именно туда, где я хочу, чтобы он продолжал повторное чтение через несколько месяцев после того, как код был припаркован. Он также хорошо реагирует на складывание в моих редакторах по выбору.
-
Некоторые вещи вместо этого я придерживаюсь, которые приводят меня в орехи, когда я читаю написанное иначе, - это вкладки вместо пробелов (особенно когда некоторые редакторы в приложении, которые мы используем, на самом деле не имеют функциональных возможностей для замены вкладок, что значительно способствует загрязнение в кодовой базе на этапе прототипирования).
-
Порядок вещей, таких как импорт, и то, что импортирует, глобалы и т.д. Это действительно отбрасывает меня в файлах с большим объемом импорта, когда они перемешаны или вышли из строя.
-
Пробелы в операторах, особенно когда люди используют вкладки И пытаются выровнять операции присваивания между строками с разной длиной в именах переменных (и, похоже, нет способа убедить тех, кто делает это, что excel ищет кусок кода НЕ опрятно;)).
-
И пробелы внутри блока управления, особенно когда я вижу, по-видимому, случайное расстояние в одном блоке управления потоком, а затем аналогичные количества интервалов, используемых в объекте для методов. Я вынужден их редактировать, прежде чем я даже начну читать проклятую вещь.
Итак, это мои и аргументы за мои "нарушения" ОПТОСОЗ (некоторые разделяли, некоторые нахмурились коллегами). Мне было бы очень интересно узнать, что делают другие питонисты и не делают в этом отношении.