Як автоматично відформатувати код Python чорним кольором

Написання коду Python - це одне, а написання коду в хорошому форматі - інше. Молодші програмісти часто зосереджуються на тому, щоб їх код працював, і на цьому шляху забувають правильно форматувати код.

Якщо ви пишете невелику програму (з 1000 рядків кодів), ви, мабуть, зможете піти без форматування коду.

Але оскільки програми стають дедалі складнішими, їх стає все важче і важче зрозуміти. У якийсь момент (близько 15 000 рядків коду) стає важче зрозуміти код, який ви самі написали.

Різниця між роботою над добре відформатованим кодом та роботою над погано відформатованим кодом подібна до різниці між життям у палаці та життям у брудному будинку.

Чому форматування коду python важливо

Читаність

Форматування коду допоможе вам ефективно прочитати його . Це виглядає більш організовано, і коли хтось подивиться на ваш код, у нього складеться гарне враження.

Це допоможе у ваших інтерв’ю з кодуванням

Коли ви берете інтерв’ю для кодування, інколи інтерв’юерам буде цікаво, чи правильно ви форматуєте свій код. Якщо ви забудете зробити це форматування, ви можете втратити свої перспективи роботи, лише через погано відформатований код.

Підтримка команди

Форматування коду стає більш важливим, коли ви працюєте в команді . Кілька людей, ймовірно, працюватимуть над одним і тим же програмним проектом, і код, який ви пишете, повинен бути зрозумілим вашим товаришам по команді. В іншому випадку стає важче працювати разом.

Це полегшує виявлення помилок

Погано відформатований код може ускладнити виявлення помилок або навіть роботу над програмою. Це також просто дуже жахливо дивитись. Це образа для ваших очей.

Пілінт і Пластівці8

Більшість розробників Python із задоволенням використовують Pylint або Flake8 для перевірки свого коду на наявність помилок та посібників щодо стилів.

Pylint - це інструмент, який перевіряє помилки в Python. Він намагається застосувати стандарт кодування та шукає запахи коду. Він також може шукати певні помилки типу, може рекомендувати пропозиції щодо того, як певні блоки можуть бути реконструйовані, і може запропонувати вам детальну інформацію про складність коду.

Flake8 - це бібліотека Python, яка обгортає PyFlakes , pycodestyle та скрипт McCabe Неда Батчелдера . Це чудовий набір інструментів для перевірки бази коду на відповідність стилю кодування (PEP8) , помилкам програмування, таким як "бібліотека імпортована, але невикористана", "Невизначене ім'я" та код, який не має відступу.

Проблема в тому, що ці інструменти повідомляють лише про проблеми, які вони ідентифікують у вихідному коді, і залишають тягар розробникам Python на їх виправлення!

Але що, якби ми мали інструмент, який міг би одночасно виявити та вирішити проблему? Чорний - це інструмент, який дозволяє одночасно виявляти помилки та форматувати код python . Таким чином це робить вас більш продуктивними.

Вступ до чорного

З проекту README:

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

Чорний може переформатувати весь файл на місці відповідно до стилю чорного коду. Це допомагає вашому мозку зосередитись на проблемі, яку ви хочете вирішити, і вирішити проблеми, а не відволікатися на структуру коду та незначні стилістичні відмінності.

Тож давайте подивимось, як ним користуватися.

Встановіть Чорний

Чорний можна встановити, запустивши pip install black. Для запуску потрібен Python 3.6.0+. Після встановлення Black у вашій оболонці буде доступний новий інструмент командного рядка під назвою black, і ви готові до початку!

Щоб негайно розпочати роботу з розумними значеннями за замовчуванням, виберіть файл python, який потрібно відформатувати, а потім напишіть чорний файл name.py у термінал. Потім Black відформатує ваш файл python.

Зараз ми побачимо, що Чорний може нам допомогти.

Форматування одного файлу

Давайте розглянемо цей простий приклад: ось дві мої функції python у моєму файлі python, який називається sample_code.py.

Ви можете використовувати black sample_code.pyтермінал для зміни формату. Після запуску Black ви побачите такий результат:

Потім ви можете відкрити sample_code.py, щоб побачити відформатований код python:

Код Python відформатований і став більш читабельним.

Форматувати кілька файлів

Щоб відформатувати більше одного файлу python, напишіть black folder_name/у терміналі.

Три файли python у папці з іменем python_with_black були переформатовані.

Перевірка файлів на форматування

Якщо ви не хочете, щоб чорний змінив ваш файл, але ви хочете знати, чи вважає чорний файл, який слід змінити, ви можете скористатися однією з таких команд:

black --check .: Це перевірить, які файли python можуть бути відформатовані в поточній папці (але насправді не змінюють файли python).

black --check --diff file_name.py : Це показує, що потрібно зробити з файлом, але не змінює файл.

Змінити кількість символів на рядок

Зверніть увагу, що для чорного значення довжини рядка за замовчуванням становить 88 символів, але ви можете змінити це, використовуючи параметр “-l” або “- -line-length”.

Наприклад, щоб змінити до 60 символів: black -l 60 python_file.py.

Чорний у блокноті Юпітера

Для користувачів ноутбуків Jupyter ви все ще можете автоматично форматувати свій код python за допомогою цього простого розширення під назвою Jupyter Black. Це розширення переформатує / впорядкує код у кодовій комірці ноутбука чорним кольором.

Розширення Jupyter Black забезпечує

  • Кнопка на панелі інструментів.
  • Комбінація клавіш для переформатування поточної кодової комірки (за замовчуванням: Ctrl-B).
  • Комбінація клавіш для переформатування цілих комірок (за замовчуванням: Ctrl-Shift-B).

Встановіть Jupyter Black

Спочатку переконайтесь, що ви встановили jupyter-contrib-nbextensions і black, а потім виконайте наступні команди.

jupyter nbextension install //github.com/drillan/jupyter-black/archive/master.zip — user

Потім увімкніть розширення, запустивши:

jupyter nbextension enable jupyter-black-master/jupyter-black 

Тепер ви можете розпочати форматування коду python у кожній комірці блокнота.

Спочатку виберіть клітинку блокнота, яку потрібно відформатувати, код пітона, потім натисніть кнопку розширення під назвою Чорний.

Потім натисніть кнопку Jupyter Black:

Інтеграція редактора

Ви можете інтегрувати Black з улюбленими редакторами. На даний момент Black підтримує PyCharm / IntelliJ IDEA, Wing IDE, Vim, Visual Studio Code, Sublime Text 3, Atom / Nuclide, Kakoune та Thonny. Дотримуйтесь інструкцій тут, щоб інтегрувати чорний колір з улюбленим редактором.

Якщо ви хочете дізнатись більше про чорний, я рекомендую переглянути переговори PyCon 2019 від kasukasz Langa.

Якщо ви дізналися щось нове або вам сподобалось читати цю статтю, поділіться нею, щоб інші могли це побачити. До тих пір до зустрічі у наступному дописі! Зі мною також можна зв’язатись у Twitter @Davis_McDavid.