undo
search menu close

Комментарии

📅 15 апреля 2025 г. 0:35

Не весь код, который мы пишем, предназначен для непосредственного выполнения компьютером. Иногда нам нужно оставлять пояснения, заметки или временно отключать фрагменты кода. Для этого в программировании используются комментарии.

В Python комментарии начинаются с символа решетки #. Все, что следует за # до конца строки, интерпретатором игнорируется. Это позволяет добавлять в код объяснения или напоминания:

print("Привет, мир!")  # Это комментарий, поясняющий, что делает эта строка 
# print("Эта строка закомментирована и не будет выполнена")

Также в учебных материалах в комментариях часто указывают ожидаемый результат выполнения кода:

print("Привет, мир!") 
# Вывод: Привет, мир!

Кроме пояснений, комментарии позволяют быстро отключить отдельные участки кода без их удаления:

# Раскомментируйте эту команду, чтобы вывести сообщение
# print("Заблокированное сообщение")

Но если символ # встречается внутри строки, то он рассматривается как её обычный символ и не интерпретируются как начало комментария:

print("Однострочный комментарий начинается с символа #")

Рекомендации PEP 8 по оформлению комментариев

Следование рекомендациям PEP 8 при написании комментариев делает код более читаемым и профессиональным.

1. Ставьте пробел между символом # и текстом комментария:

# Правильное пространство перед комментарием

2. Если комментарий размещён рядом с командой на одной строке, оставляйте 2 пробела между самой инструкцией и началом комментария:

x = 1 + 2  # Результат вычисления сохраняем в переменную x

3. Многострочные комментарии желательно располагать на уровне отступа блока кода, которому они принадлежат:

def my_function(x):
    # Начинаем вычисление
    if x > 0:
        # Блок обработки положительных значений
        result = x * 2

Многострочные комментарии

Иногда возникает необходимость записать более развернутое пояснение, которое не умещается в одну строку. Для этого можно разместить столько строк с символом #, сколько потребуется:

# Это пример многострочного комментария. 
# Он используется для предоставления более подробного 
# объяснения определенного участка кода или его логики.
print("Привет, мир!")
print("Всё ещё привет, мир!")

Однако удобнее использовать многострочные комментарии, создаваемые с помощью тройных одинарных ''' или двойных """ кавычек. Подобная конструкция позволяет создавать многострочную область, которая целиком воспринимается как один комментарий:

"""
Этот блок описывает работу модуля и служит примером стиля оформления
документации для крупных блоков кода.
"""
print("Всё ещё привет, мир!")

При этом многострочные комментарии не поддерживают вложенность. Попытка вложить один такой комментарий внутрь другого может привести к ошибке:

"""
Это внешний многострочный комментарий.
    """
    Попытка вложить еще один многострочный комментарий не сработает!
    """
"""

Строки документации

Многострочные комментарии, заключенные в тройные кавычки, часто используются для написания строк документации (англ. – docstrings). Они служат для описания назначения и функциональности объектов Python, таких как модули, функции и классы. Эти конструкции похожи на многострочные комментарии, но имеют ключевое различие: они хранятся в памяти программы и могут использоваться инструментами разработки для создания документации.

Строки документации записываются сразу после определения класса, метода или функции и располагаются в пределах тройных кавычек:

def greet():
    """
    Выводит на экран приветственное сообщение.
    """
    print(f"Привет, друг!")

Чтобы просмотреть документацию любого элемента, достаточно вызвать встроенную функцию help():

help(greet)

Тогда на экране мы увидим строки документации, написанные ранее:

Help on function greet in module __main__:

greet(name)
    Выводит на экран приветственное сообщение.

Также мы можем посмотреть документацию встроенной функции print():

help(print)

Как видите, встроенные функции имеют подробную документацию, описывающую их поведение:

Help on built-in function print in module builtins:
print(*args, sep=' ', end='\n', file=None, flush=False)
    Prints the values to a stream, or to sys.stdout by default.
    sep
      string inserted between values, default a space.
    end
      string appended after the last value, default a newline.
    file
      a file-like object (stream); defaults to the current sys.stdout.
    flush
      whether to forcibly flush the stream.

Когда и что комментировать?

Комментарии должны помогать понять логику и назначение кода, поэтому следует приддерживаться определённых рекомендаций.

1. Добавляйте ясность там, где логика сложна или неочевидна:

# Алгоритм Евклида для нахождения НОД двух чисел
while a != b:
    if a > b:
        a -= b
    else:
        b -= a

2. Объясняйте причину выбора конкретного подхода или решения:

# Используем кэширование результатов для ускорения последующих обращений
@lru_cache(maxsize=128)
def fibonacci(n):
    ...

3. Документируйте функции, классы и модули:

def congratulate():
    """
    Выводит на экран сообщение с поздравлением.
    """
    print("Пусть твой день будет полон счастья и радости!")

4. Избегайте избыточного комментирования очевидных действий:

print("Привет, мир!")  # Функция вывода сообщения "Привет, мир!" на экран

Хорошо написанные комментарии делают ваш код более понятным и облегчают его поддержку в будущем.

Задания для самопроверки

1. С какого символа начинается однострочный комментарий?

 
Ответ

2. Для чего нужны комментарии?

 
Ответ

3. Как можно написать комментарий, занимающий несколько строк?

 
Ответ

4. Используя символ # и создайте простой комментарий на тему вашего любимого хобби или блюда.

 
Ответ

5. Запишите свою любимую цитату или стихотворение в виде многострочного комментария.

 
Ответ
arrow_back_ios Назад
Дальше arrow_forward_ios

 💬 0 комментариев
person
email