Как да форматирате автоматично вашия Python код с черно

Писането на Python код е едно, а писането на кода в добър формат е друго. По-младите програмисти често се фокусират върху това дали кодът им работи и забравят да форматират кода правилно по пътя.

Ако напишете малка програма (с 1000 реда кодове), вероятно ще можете да се измъкнете, без да форматирате кода си.

Но тъй като програмите стават все по-сложни, те стават все по-трудни за разбиране. В един момент (около 15 000 реда код) става по-трудно да разберете кода, който сами сте написали.

Разликата между работата по добре форматиран код и работата по лошо форматиран код е като разликата между това да живееш в дворец и да живееш в мръсна къща.

Защо форматирането на вашия python код е важно

Четливост

Форматирането на вашия код ще ви помогне да прочетете кода си ефективно . Изглежда по-организирано и когато някой погледне кода ви, ще получи добро впечатление.

Това ще ви помогне в интервютата за кодиране

Когато сте на интервю за кодиране, понякога интервюиращите ще се интересуват дали правилно форматирате кода си. Ако забравите да направите това форматиране, може да загубите перспективите си за работа, само заради лошо форматирания си код.

Екипна поддръжка

Форматирането на вашия код става по-важно, когато работите в екип . Няколко души вероятно ще работят по един и същ софтуерен проект и кодът, който пишете, трябва да бъде разбран от вашите съотборници. В противен случай става по-трудно да работим заедно.

Улеснява откриването на грешки

Лошо форматиран код може да направи наистина, наистина трудно да се открият грешки или дори да се работи по програма. Също така е наистина ужасно да се погледне. Това е обида за очите ви.

Пилинт и Флейк

Повечето разработчици на Python обичат да използват Pylint или Flake8, за да проверят кода си за грешки и ръководства за стил.

Pylint е инструмент, който проверява за грешки в Python. Той се опитва да наложи кодиращ стандарт и търси миризми на код. Той може също така да търси определени грешки в типа, може да препоръча предложения за това как определени блокове могат да бъдат рефакторирани и да ви предложи подробности за сложността на кода.

Flake8 е библиотека на Python, която обгръща PyFlakes , pycodestyle и скрипта McCabe на Ned Batchelder . Това е чудесен набор от инструменти за проверка на вашата кодова база спрямо стила на кодиране (PEP8) , грешки при програмиране като „библиотека импортирана, но неизползвана“, „Неопределено име“ и код, който не е с отстъп.

Проблемът е, че тези инструменти отчитат само проблемите, които идентифицират в изходния код и оставят тежестта на разработчиците на Python да ги поправят!

Но какво, ако имахме инструмент, който може да идентифицира и разреши проблема едновременно? Черното е инструмент, който ви позволява да идентифицирате грешки и да форматирате вашия python код едновременно. По този начин ви прави по-продуктивни.

Въведение в черно

От проекта README:

Използвайки Черно , вие се съгласявате да отстъпите контрола върху детайлите при ръчно форматиране. В замяна, черното ви дава бързина, детерминизъм и свобода от заяждане на pycodestyle за форматиране. Ще спестите време и умствена енергия за по-важни въпроси.

Black може да преформатира целия ви файл на място според стила на Black code. Той помага на мозъка ви да се съсредоточи върху проблема, който искате да разрешите, и да кодира решения, вместо да се разсейва от структурата на кода и незначителните стилистични разлики.

Така че нека видим как да го използваме.

Инсталирайте Black

Черно може да се инсталира чрез стартиране pip install black. Той изисква Python 3.6.0+ да стартира. След като Black е инсталиран, ще имате нов инструмент за команден ред, наречен black, на разположение в черупката си и сте готови да започнете!

За да започнете веднага с разумни настройки по подразбиране, изберете файла на python, който искате да форматирате, и след това напишете черен filename.py в терминала. Тогава Black ще форматира вашия python файл.

Сега ще видим какво може да ни помогне Black.

Форматирайте един файл

Нека разгледаме този прост пример: ето моите две функции на python в моя файл на python, наречени sample_code.py.

Можете да използвате black sample_code.pyтерминала, за да промените формата. След като стартирате Black, ще видите следния изход:

След това можете да отворите sample_code.py, за да видите форматиран код на python:

Кодът на Python вече е форматиран и е по-четлив.

Форматирайте няколко файла

За да форматирате повече от един python файл, напишете black folder_name/в терминала.

Три python файла в папката с име python_with_black са преформатирани.

Проверка на файлове за форматиране

Ако не искате Black да промени файла ви, но искате да знаете дали Black смята, че файлът трябва да бъде променен, можете да използвате една от следните команди:

black --check .: Това ще провери кои питонови файлове могат да бъдат форматирани в текущата папка (но всъщност не променят питоновите файлове).

black --check --diff file_name.py : Това показва какво трябва да се направи с файла, но не променя файла.

Промяна на броя символи на ред

Обърнете внимание, че черното по подразбиране е 88 символа за дължината на реда, но можете да промените това, като използвате опцията „-l“ или „- -line-length“.

Например, за да се промени до 60 знака: black -l 60 python_file.py.

Черен в тетрадка Jupyter

За потребителите на преносими компютри 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 код във всяка клетка на бележника.

Първо, изберете клетката на бележника, която искате да форматирате вашия python код, след което щракнете върху бутона за разширение, наречен Black.

След това щракнете върху бутона Jupyter Black:

Интеграция на редактора

Можете да интегрирате Black с любимите си редактори. В момента Black поддържа PyCharm / IntelliJ IDEA, Wing IDE, Vim, Visual Studio Code, Sublime Text 3, Atom / Nuclide, Kakoune и Thonny. Следвайте инструкциите тук, за да интегрирате Black с любимия си редактор.

Ако искате да научите повече за Black, препоръчвам да гледате беседата на PyCon 2019 от kasukasz Langa.

Ако сте научили нещо ново или сте се радвали да прочетете тази статия, моля, споделете я, за да могат другите да я видят. Дотогава до нови срещи! Също така мога да бъда намерен в Twitter @Davis_McDavid.