Многострочные комментарии в Python
Поддерживает ли Python многострочные комментарии так, как это реализовано в других языках? Какие варианты написания блочных комментариев в Python?
В большинстве языков программирования присутствует синтаксис для блочных комментариев, которые охватывают несколько строк текста, например C или Java:
/* Блочный комментарий. Охватывает несколько строк. */ int answer = 42;
Есть ли в Python аналогичные многострочные комментарии? Короткий ответ: нет, по крайней мере, не совсем точно так же.
Python использует различные соглашения и синтаксис для блочных комментариев, которые охватывают несколько строк. В этой статье будут показаны некоторые варианты создания многострочных комментариев в Python.
Вариант 1: последовательные однострочные комментарии
Первым вариантом для комментирования нескольких строк кода в Python является простое использование # однострочного комментария для каждой строки:
# Это «блочный комментарий» в Python, сделанный # из нескольких однострочных комментариев. answer = 42
Большинство проектов Python следуют этому стилю, а руководство по стилю написания кода PEP 8 Python также рекомендует использовать повторяющиеся однострочные комментарии. Поэтому в большинстве случаях рекомендуется использовать их. Это также единственный способ написать «реальных» блочных комментариев в Python, которые игнорируется парсером.
Т.к. Python не поддерживает истинные многострочные комментарии, то для того чтобы закомментировать несколько строк кода требуется больше усилий. Приведём ряд полезных советов по ускорения работы с ними. У большинства редакторов кода есть шорткаты для блочных комментариев. Например, в Sublime Text достаточно просто выбирать пару строк, используя shift и клавиши курсора (или мышь), а затем нажимать cmd + /, чтобы закомментировать их все сразу.
Это даже работает в обратном порядке, то есть можно выбрать блок однострочных комментариев, и когда набирается клавиатурный шорткат cmd + /, весь блок снова раскомментируется.
Другие редакторы тоже поддерживают такую возможность: Atom, VS Code и даже Notepad++ имеют встроенные шорткаты для блочного комментирования в Python. Управление комментариями Python вручную – это неблагодарная работа, поэтому такая функция редактора может сэкономить много времени.
Вариант 2: использование многострочных строк вместо комментариев
Ещё одним вариантом для написания «правильных» многострочных комментариев в Python является использование многострочных строк с синтаксисом «»» (три кавычки). Например:
""" Блок комментариев в Python, сделанный из многострочной строковой константы. """ answer = 42
Можно использовать тройные кавычки для создания чего-то, что напоминает многострочный комментарий в Python. Необходимо убедиться, что правильно ввели «»», иначе будет получено исключение SyntaxError. Например, если нужно определить блочный комментарий внутри функции с помощью такого синтаксиса, то должны выполнить это следующим образом:
def add_stuff(a, b): result = a + b """ Теперь возвращается результат. Ещё один пример многострочного комментария. """ return result
Имейте в виду, что данный метод не создает «истинных» комментариев. Он просто вставляет текстовую константу, которая ничего не делает. Это то же самое, что вставить правильную однострочную строку где-то в коде и никогда не обращаться к ней.
Тем не менее, такая потерянная строковая константа не будет отображаться в байт-коде, фактически превращая её в многострочный комментарий. Далее доказательство того, что неиспользуемая строка не будет отображаться в дизассемблированном байт-коде CPython:
>>> import dis >>> dis.dis(add_stuff) 2 0 LOAD_FAST 0 (a) 2 LOAD_FAST 1 (b) 4 BINARY_ADD 6 STORE_FAST 2 (result) 8 8 LOAD_FAST 2 (result) 10 RETURN_VALUE
Однако будьте осторожны, когда помещаете такие «комментарии» в код. Если строка следует сразу после сигнатуры функции, определения класса или в начале модуля, она превращается в docstring, которая имеет совсем другое значение в Python:
def add_stuff(a, b): """ Это теперь связанная с docstring функция с объектом функции и доступным как метаданные времени выполнения. """ result = a + b return result
Docstrings («строки документации») позволяют сопоставлять удобочитаемую документацию с модулями, функциями, классами и методами Python. Они отличаются от комментариев исходного кода.
Комментарий удаляется парсером, тогда как docstring встраивается в байт-код и ассоциируется с документированием объекта. Её можно даже запросить к программному объекту во время выполнения.
Как это было сказано ранее, единственный способ получить «истинные» многострочные комментарии в Python, которые игнорируются парсером, заключается в использовании нескольких комментариев # для каждой однострочной строки.
Но в некоторых случаях использование тройных кавычек, может быть правильным выбором. Старайтесь избежать их использования в готовом к продашену коде.
Выводы
- В отличие от других языков программирования Python не поддерживает многострочные комментарии из коробки.
- Рекомендуемый способ закомментировать несколько строк кода в Python — использовать последовательные # однострочные комментарии. Это единственный способ получить «истинные» комментарии в исходном коде, которые удаляются парсером Python.
- Вы можете использовать строки с тремя кавычками «»», чтобы создать что-то похожее на многострочные комментарии в Python, но это не идеальный метод, и такие могут превратиться в случайные docstrings.
Работа с Git и GitHub в редакторе кода Atom
Если вы новичок и еще не работали с консолью, но уже хотите работать с Git и GitHub, то вместо поиска подходящего GUI, советую вам присмотреться к редактору Atom.
Atom — отличный редактор кода с богатым функционалом и очень гибкой настройкой. Так как он разрабатывался командой GitHub, то вполне логичным и долгожданным стало появление в стартовой сборке версий 1.18+ одноименного пакета “GitHub”, позволяющего работать с репозиториями и системой контроля версий напрямую из редактора без установки дополнительных программ, в том числе даже GitHub Desktop.
Работа с пакетом ведется через панели Git и GitHub. Их можно открыть через меню редактора: Packages -> GitHub -> Toggle Git Tab, или сочетанием клавиш Ctrl + Shift + 9 для Git и Ctrl + Shift + 8 для GitHub.
Подключение удаленного репозитория
Для примера создадим новый репозиторий.
Войдите в свой аккаунт на GitHub и выберите пункт “New repository” в меню справа или нажмите зеленую кнопку “New repository” в разделе “Your repositories”.
Введите название и описание. Поставьте галочку “Initialize this repository with a README”, чтобы автоматически создать файл readme.md. Вы можете выбрать будет ли ваш репозиторий публичным (Public) или приватным (Private, это опция требует оплаты тарифного плана). Нажмите кнопку “Create repository” и создайте новый репозиторий.
Чтобы связать локальный репозиторий с удаленным, нам необходим специальный URL этого репозитория на GitHub.
В созданном репозитории нажмите кнопку “Clone or download” и скопируйте URL.
Откройте командную строку редактора Crtl + Shift + P и введите команду “GitHub: Clone” или воспользуйтесь сочетанием клавиш Alt + G и затем =.
Команда PUSH
Команда push позволяет отправить в удаленный репозиторий изменения, внесенные в локальный репозиторий.
Кликнув на дереве локального рипозитория слева, создадим новую папку с именем “css” сочетанием клавиш Shift + A (или пункт “New folder” в контекстном меню). Обратите внимание — на панели Git создание пустой папки не отображается, т.е. папка без содержимого не будет добавлена в коммит, а значит и в репозиторий на GitHub. Добавим в нее несколько новых файлов — клавиша “A” или пункт “New file” в контекстом меню.
В разделе “Unstaged Changes” создание файлов отображается зелеными значками. Желтыми значками будут отображаться изменения в уже проиндексированных файлах. Красными значками будут отображаться удаленные файлы.
Отправим наши изменения в удаленный репозиторий на GitHub. В разделе “Unstaged Changes” нажмите кнопку “Stage All”. Все учтенные изменения будут перенесены в раздел “Staged Changes”. Если вы хотите добавить только некоторые — выберите нужные и нажмите клавишу Enter. При необходимости вы можете вернуть их обратно кнопкой “Unstage All”.
Чтобы не вводить данные аккаунта каждый раз, сохраним их в системе Git нашего локального репозитория. В дереве слева откройте папку “.git” и выберите файл “config”. В строке “url” после “ https:// ” и до названия домена “github.com” введите данные аккаунта. Отделите username от пароля “:” и пароль от домена “@”. В итоге у вас должен получиться адрес вида “https://username:password@github.com/…”.
Это безопасно — файл “config” хранится локально, изменения в нем не фиксируются в коммитах, не попадают в историю и не доступны даже если ваш репозиторий на GitHub публичный.
Тем не менее этот способ временный —только пока вы новичок и консоль вам не покорилась. С этим способом вам придется изменять URL в файле config каждого нового репозитория. В будущем, чтобы правильно организовать доступ к репозиториям вашего аккаунта, вам потребуется настроить SSH-ключи.
Команда PULL
Команда pull позволяет получить изменения, которые произошли в удаленном репозитории, и слить их с нашими локальными файлами.
Теперь отредактируем файлы в удаленном репозитории.
Важно! Для примера в коммитах просто дублируется информация об изменениях, но в проектах в них не следует просто констатировать изменение файла или строк (это можно увидеть и при просмотре коммита), указывайте зачем были внесены эти изменения — исправлен баг, сверстан новый блок, изменена сетка.
Теперь вернемся в редактор и попытаемся внести в локальный репозиторий те изменения, которые произошли в удаленном. На панели Git нажмем кнопку “Fetch”, чтобы обновить информацию об удаленном репозитории.
Выполним команду pull и проверим наш локальный репозиторий — в него добавились все изменения из главного репозитория.
Конфликты
При слиянии (merge) локального и удаленного репозитория могут возникать конфликты. Редактор постарается помочь вам их предотвратить. К примеру, при отправке push редактор может выдать предупреждение:
Эта проблема решается предварительным запросом pull.
Конфликты происходят из-за разных коммитов, изменяющих одну область кода. Например, в GitHub уже сохранен новый цвет фона и в тот же момент мы изменили его у себя, а затем попытались запросить pull. Редактор выдаст предупреждение:
Кликнув по изменению в разделе “Unstaged Changes”, можно увидеть какие строки файла были изменены. Изменение можно удалить из этого раздела (тогда файл вернется в состояние, сохраненное в последнем коммите) сочетанием клавиш Ctrl + Backspace или соответствующей командой в контекстном меню и затем снова запросить pull.
Конфликт изменений может выглядеть следующим образом:
Здесь вы можете выбрать из двух вариантов — локальные изменения (our changes) или изменения из удаленного репозитория (their changes). Так же вы можете отредактировать любое из них и уже потом его выбрать. К примеру скопировать конфликтный код из одного блока в другой и закомментировать его, чтобы позже разобраться в коде. Затем выбрать нужный вариант кнопкой “Use me” и потом опять синхронизировать данные в репозиториях командами pull/push.
Изменение коммита
При необходимости можно внести изменения в последний коммит, который еще не отправлен в удаленный репозиторий. Для этого нужно поставить галочку “Amend” рядом с кнопкой “Commit”. При этом надпись на ней измениться на “Emmend commit”.
Создание ветки
Также в редакторе можно создавать новые ветки репозитория и переключаться между ними.
Горячие клавиши
Полезные сочетания клавиш для работы с пакетом можно увидеть, вбив в командную строку редактора запрос “github”.
Более подробно о редакторе Atom и пакете GitHub можно узнать на официальном сайте проекта Atom for GitHub и в соответствующем разделе его документации — GitHub package.
Prolog: Комментарии
Prolog, как и другие языки программирования, поддерживает комментирование кода. Комментарии никак не используются кодом и нужны исключительно для людей: чтобы программист оставлял пометки для себя и для других программистов. Написать комментарий в коде программы можно двумя способами:
- Весь текст после символа % и до конца строки будет считаться комментарием (однострочный комментарий)
- Весь текст после /* и до */ будет считаться комментарием (многострочный комментарий)
% Комментарий может занимать всю строчку :– write('Это не комментарий'). % или может находиться на строчке после какого–нибудь кода /* А это многострочный комментарий */
Задание
Для примера из урока, создайте однострочный комментарий с текстом: You know nothing, Jon Snow!.
Упражнение не проходит проверку — что делать?
Если вы зашли в тупик, то самое время задать вопрос в «Обсуждениях». Как правильно задать вопрос:
- Обязательно приложите вывод тестов, без него практически невозможно понять что не так, даже если вы покажете свой код. Программисты плохо исполняют код в голове, но по полученной ошибке почти всегда понятно, куда смотреть.
В моей среде код работает, а здесь нет
Тесты устроены таким образом, что они проверяют решение разными способами и на разных данных. Часто решение работает с одними входными данными, но не работает с другими. Чтобы разобраться с этим моментом, изучите вкладку «Тесты» и внимательно посмотрите на вывод ошибок, в котором есть подсказки.
Мой код отличается от решения учителя
Это нормально , в программировании одну задачу можно выполнить множеством способов. Если ваш код прошел проверку, то он соответствует условиям задачи.
В редких случаях бывает, что решение подогнано под тесты, но это видно сразу.
Прочитал урок — ничего не понятно
Создавать обучающие материалы, понятные для всех без исключения, довольно сложно. Мы очень стараемся, но всегда есть что улучшать. Если вы встретили материал, который вам непонятен, опишите проблему в «Обсуждениях». Идеально, если вы сформулируете непонятные моменты в виде вопросов. Обычно нам нужно несколько дней для внесения правок.
Кстати, вы тоже можете участвовать в улучшении курсов: внизу есть ссылка на исходный код уроков, который можно править прямо из браузера.
Подборка самых полезных горячих клавиш для различных IDE и редакторов кода
Программист должен хорошо знать свой инструмент. Собрали для вас подборку горячих клавиш, повышающих эффективность разработки в различных IDE.
Хорошему программисту нужны хорошие инструменты для работы. Однако самих инструментов мало — нужно ещё владеть ими на должном уровне. Комбинация клавиш Ctrl+C Ctrl+V — незаменимый спутник каждого разработчика, однако в средах разработки есть гораздо больше полезных горячих клавиш, существенно повышающих продуктивность. Мы собрали для вас подборку полезных горячих клавиш для некоторых популярных IDE, чтобы вы могли похвастаться перед коллегами своими мега-скиллами разработки.
IntelliJ IDEA
IntelliJ IDEA — известная IDE от JetBrains для JVM-языков вроде Java, Scala и Kotlin. Укомплектована уникальными инструментами и позволяет без проблем ориентироваться в программе. Есть и другие IDE от тех же разработчиков, например, PyCharm для Python, WebStorm для JavaScript и не только. Они во многом схожи между собой, поэтому большинство из нижеуказанных горячих клавиш должно работать и в других IDE от JetBrains.
- Ctrl + Space — стандартное автодополнение кода;
- Ctrl + Shift + Space — умное автодополнение кода;
- Двойной Shift — искать везде;
- Alt + Enter — показать возможные варианты исправления;
- Alt + Ins — генерация кода (геттеры, сеттеры, конструктор и т.д.);
- Ctrl + P — информация о параметре (применяется на аргументе метода при вызове);
- Ctrl + W — расширить область выделения;
- Ctrl + Shift + W — уменьшить область выделения;
- Ctrl + E — список недавних файлов;
- Shift + F6 — переименовать (переменную, функцию и т.д.);
- Ctrl + R — сделать замену;
- Ctrl + Q — быстрый просмотр документации;
- Ctrl + / — закомментировать/раскомментировать строку;
- Ctrl + Shift + / — закомментировать/раскомментировать блок кода;
- Ctrl + Alt + I — автоматически добавить нужные отступы для строки/строк;
- Ctrl + Shift + A — найти действие;
- Shift + Alt + ↑ — переместить выбранные строки вверх;
- Shift + Alt + ↓ — переместить выбранные строки вниз;
- Ctrl + Shift + F7 — показать все упоминания в файле;
- Ctrl + Alt + L — реформатировать код.
Eclipse
Если вы близки с open-source сообществом, то вы наверняка слышали об Eclipse. Будучи доступным для Linux, Windows и OS X, Eclipse де-факто является open-source IDE для разработки на Java. Существует множество расширений и аддонов, которые делают Eclipse полезным для разного рода задач и разработки на отличных от Java языках программирования вроде Python.
- Ctrl + 1 — быстрое исправление;
- Ctrl + Alt + R — переименовать;
- Ctrl + / — закомментировать/раскомментировать строку;
- Ctrl + Shift + / — закомментировать/раскомментировать блок кода;
- Alt + ↑ — переместить выбранные строки вверх;
- Alt + ↓ — переместить выбранные строки вниз;
- Ctrl + I — исправить отступы;
- Ctrl + Alt + U — показать все упоминания в файле;
- Ctrl + Q — перейти к последнему месту редактирования;
- Shift + Ctrl + X — привести текст к верхнему регистру;
- Shift + Ctrl + Y — привести текст к нижнему регистру;
- Ctrl + Shift + F — реформатировать код;
- Ctrl + Shift + O — автоматически вставить нужные импорты.
Visual Studio 2017
Visual Studio — полнофункциональная IDE от Microsoft, которая во многом сопоставима с Eclipse. Доступная на Windows и Mac OS, Visual Studio представлена как в бесплатном (Community), так и в платном (Professional и Enterprise) вариантах. Visual Studio позволяет разрабатывать приложения для разных платформ и предоставляет свой собственный набор расширений.
- F12 — перейти к определению(класса,метода и т.д.);
- Ctrl + Shift + L — поставить закладку;
- Ctrl + K Ctrl + W — открыть окно закладок;
- Ctrl + Shift + U — привести текст к верхнему регистру;
- Ctrl + U — привести текст к нижнему регистру;
- Ctrl + Shift + V или Ctrl + Shift + Ins — вставить один из 10 последних фрагментов текста, скопированных в буфер обмена;
- Ctrl + K Ctrl + C — закомментировать блок кода;
- Ctrl + K Ctrl + U — раскомментировать блок кода;
- Ctrl + K Ctrl + D — отформатировать весь документ;
- Ctrl + K Ctrl + F — отформатировать выбранный текст;
- Ctrl + K Ctrl + S — обернуть в конструкцию (if-else, цикл for и т.д.);
- Ctrl + ] — когда курсор установлен на скобку, регион, многострочный комментарий или строку, эта комбинация позволит увидеть начало и конец этого блока;
- Ctrl + M Ctrl + O — свернуть все функции;
Atom
Доступный на всех платформах Atom называют «хакабельным текстовым редактором 21 века». Atom написан с использованием Electron — фреймворка для создания кроссплатформенных приложений для десктопа средствами JavaScript, HTML и CSS — и имеет множество расширений.
- Ctrl + Shift + L — выбрать язык файла;
- Ctrl + Shift + D — копирует строку, на которой находится курсор, под неё же;
- Ctrl + Shift + K — удалить строку;
- Ctrl + ↑ — переместить выбранные строки вверх;
- Ctrl + ↓ — переместить выбранные строки вниз;
- Ctrl + R — открывает список со всеми символами (функциями) в текущем файле для быстрого перехода;
- Alt + F3 — выбрать все одинаковые слова;
- Ctrl + ЛКМ — множественные курсоры;
- Ctrl + J — соединить строки;
- Ctrl + [ — убрать отступы для выделенных строк;
- Ctrl +] — добавить отступы для выделенных строк.
Visual Studio Code
Visual Studio Code (не путать с Visual Studio) — полнофункциональный редактор кода, доступный на Windows, Linux и Mac OS X. VS Code является расширяемым open-source редактором, который можно настроить под любую задачу. Как и Atom, VS Code построен на Electron, поэтому у него есть те же преимущества и недостатки.
- F2 — переименовать символ (функцию, переменную и т.д.);
- Ctrl + Shift + O — перейти к символу;
- Ctrl + K Z — перейти в режим Дзен, в котором вас не отвлекают лишние детали;
- Ctrl + / — закомментировать/раскомментировать строку;
- Shift + Alt + A — закомментировать/раскомментировать блок кода;
- Ctrl + Shift + [ — свернуть область;
- Ctrl + Shift + ] — развернуть область;
- Ctrl + H — заменить;
- Shift + F12 — показать все упоминания;
- F12 — открыть определение (функции, класса и т.д.);
- Ctrl + K F12 — открыть определение в другой части экрана;
- Ctrl + K M — изменить язык файла;
- Ctrl + P — быстро открыть файл;
- Ctrl + \ — разделить экран;
- Ctrl + ` — открыть встроенный терминал;
- Ctrl + K Ctrl + S — показать список всех горячих клавиш.
Sublime Text
Sublime Text, написанный инженером из Google с мечтой о лучшем текстовом редакторе, является весьма популярным редактором кода. Доступный на всех платформах, Sublime Text имеет встроенную поддержку редактирования кода на разных языках, а также богатый набор расширений, называемых пакетами, которые расширяют возможности синтаксиса и редактирования.
- Ctrl + K Ctrl + C — переместить экран к курсору;
- Ctrl + Shift + ↑ — переместить выбранные строки вверх;
- Ctrl + Shift + ↓ — переместить выбранные строки вниз;
- Ctrl + Y — повторить действие последней использованной горячей клавиши;
- Ctrl + Shift + V — вставить с правильными отступами;
- Ctrl + F2 — поставить закладку;
- F2 — перейти к следующей закладке;
- Shift + F2 — перейти к предыдущей закладке;
- Ctrl + K Ctrl + U — привести текст к верхнему регистру;
- Ctrl + K Ctrl + L — привести текст к нижнему регистру;
- Alt + Shift + — разделить экран на (в пределах от 1 до 4) колонок;
- Alt + Shift + 5 — разделить экран в виде сетки 2х2;
- Alt + Shift + 8 — разделить экран на две строки;
- Ctrl + Shift + F — поиск и замена в файлах;
- Ввести lorem и нажать Tab — вставляет текст Lorem ipsum…;
- F9 — отсортировать выделенные строки.
Смотрите также: «Подборка бесплатных кроссплатформенных сред для веб-разработки»
Следите за новыми постами по любимым темам
Подпишитесь на интересующие вас теги, чтобы следить за новыми постами и быть в курсе событий.