Побалуйте себя использованием «черной» библиотеки при написании кода на Python

Самый простой способ иметь «единый формат правильного» кода

Вы когда-нибудь копировали и вставляли пример кода из документации библиотеки или Stack Overflow? Или, может быть, у вас нет чистого опыта программиста, поэтому вы не обучены писать идеально отформатированный код? Вы хотите улучшить читаемость своего кода, чтобы произвести впечатление на других?

Одним из преимуществ языка программирования Python является то, что он использует отступы для указания уровня вложенности блоков кода. Таким образом, написать какой-то «нечитаемый» код с точки зрения формата относительно сложнее. Однако это не означает, что все коды Python должны быть отформатированы. Не существует языка программирования, который может создать столько ограничений, чтобы заставить пользователей писать форматированный код, и я не думаю, что это хорошая идея, потому что его будет слишком сложно использовать.

В этой статье я представлю библиотеку Python под названием «Black». Это может помочь нам отформатировать наш код по-разному. Все стили будут соответствовать руководству PEP 8. Давайте начнем создавать согласованный и читаемый форматированный код прямо сейчас!



1. Основное использование

Прежде чем мы сможем начать использовать библиотеку, нам нужно установить ее с помощью pip следующим образом.

pip install black

Давайте подготовим плохой пример следующим образом.

def my_function(a=1,b=2,c=3,d=4):
    my_list = [a, 
               b, 
               c, 
               d]
    return sum(my_list)
if True: print(my_function())

Приведенный выше код определенно может работать, но есть много проблем.

  1. Параметры в функции my_function разделены запятыми, но после запятых нет пробелов.
  2. Элементы в списке my_list представлены вертикально. В некоторых случаях это может быть нормально, но абсолютно не соответствует рекомендациям PEP 8.
  3. Между определением функции и оператором if нет новых строк, что повлияет на удобочитаемость.
  4. Оператор if был написан в одну строку. Это допустимый код, но он не подходит для удобочитаемости.

Я сохраню код в файл с именем example1.py. Мы можем проверить плохой пример следующим образом.

Если хотите, вы также можете убедиться, что этот скрипт Python определенно работает.

Затем воспользуемся библиотекой black для форматирования файла. Самый простой способ сделать это — использовать интерфейс командной строки (CLI) следующим образом.

$ black example1.py 

Он говорит нам, что файл переформатирован. Теперь давайте проверим результат.

def my_function(a=1, b=2, c=3, d=4):
    my_list = [a, b, c, d]
    return sum(my_list)


if True:
    print(my_function())

Да! Все 4 проблемы, упомянутые ранее, были исправлены.

Вы заметили, что там упоминается «1 файл переформатирован»? Это верно. Если мы укажем каталог, библиотека black переформатирует все скрипты Python в каталоге.

$ black my_dir/

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

2. Некоторые полезные аргументы/флаги CLI

Как и другие инструменты CLI, black также имеет много аргументов для предоставления более причудливых функций. Я выберу некоторые из них, которые, по моему мнению, будут полезны, и представлю их в этом разделе.

2.1 Переформатировать фрагмент кода

Перейдём к другой теме. В большинстве случаев мы, вероятно, не хотим снова и снова переформатировать файл. Одним из типичных сценариев может быть то, что мы скопировали функцию или фрагмент кода из документации или Stack Overflow. (Совершенно не стыдно, большинство разработчиков так и поступают :). Однако формат может не соответствовать нашему коду, или код по какой-то причине теряет свой формат.

В этом случае нам не нужно вставлять код в файл и переформатировать его. Мы можем сделать это, используя аргумент --code на лету в консоли.

Например, функция print() может быть отформатирована следующим образом.

$ black --code "print ( 'hello, world' )"

Теперь вы можете скопировать переформатированный код и поместить его в свой скрипт.

2.2 Проверка формата (пробный прогон)

Если мы просто хотим проверить, соответствует ли ваш код стандартам PEP 8, не изменяя его, мы можем использовать флаг --check следующим образом.

$ black example1.py --check

Ну, это говорит нам, что его не нужно менять, потому что example1.py уже был переформатирован. Однако, что, если это необходимо?

Давайте создадим еще один файл сценария Python, используя исходный «плохой пример», и назовем файл example2.py. Давайте проверим, что это «плохой пример».

Тогда давайте проведем «пробный прогон».

Мы видим, что он говорит «будет переформатирован». Конечно, мы также можем провести этот пробный прогон для каталога.

$ black . --check

2.3 Покажите, что будет изменено

Хотите знать, почему ваш код не соответствует стандартам? Мы можем использовать флаг --diff, чтобы показать конкретные изменения.

$ black example2.py --diff

Краткое содержание

В этой статье я представил библиотеку black — популярный форматировщик кода для Python, который автоматически переформатирует ваш код, чтобы он соответствовал руководству по стилю PEP 8. Он обеспечивает единообразное и удобочитаемое форматирование кода, облегчая его чтение и поддержку.

Мы можем использовать black, чтобы убедиться, что наш код непротиворечив, удобочитаем и удобен в сопровождении. Его также можно использовать из командной строки со многими полезными встроенными функциями, которые можно вызывать с аргументами или флагами. Надеюсь, это поможет вам писать лучший код!



Если вы считаете, что мои статьи полезны, подумайте о том, чтобы присоединиться к Medium Membership, чтобы поддержать меня и тысячи других писателей! (Нажмите на ссылку выше)

Если не указано иное, все изображения принадлежат автору