Способ создания многострочных комментариев в Python?

Недавно я начал изучать Python, но не смог найти, как реализовать многострочные комментарии. Большинство языков имеют символы комментариев блока, такие как

/* 

*/

Я попробовал это в Python, но он выдает ошибку, поэтому это, вероятно, неверно. Есть ли у Python многострочная функция комментариев?

+1065
источник поделиться
22 ответа

Вы можете использовать строки с тремя кавычками. Когда они не являются docstring (первая вещь в классе/функции/модуле), они игнорируются.

'''
This is a multiline
comment.
'''

(Удостоверьтесь в том, что в верхнем ''' необходимо отступать, чтобы избежать IndentationError.)

Гвидо ван Россум (создатель Python) написал в твиттере этот в качестве "про совета".

Однако руководство по стилю Python, PEP8, поддерживает последовательные однострочные комментарии, и это также то, что вы найдете во многих проектах, Редакторы обычно имеют ярлык, чтобы сделать это легко.

+1669
источник

Python имеет многострочный синтаксис строки/комментария в том смысле, что, если он не используется как docstrings, многострочные строки не генерируют байт-код - точно так же, как # -предоставляемые комментарии. По сути, он действует точно так же, как комментарий.

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

В любом случае ваш редактор должен также иметь возможность легко комментировать выбранные (путем размещения a # перед каждой линией отдельно). Если нет, переключитесь на редактор, который делает.

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

Редактор не только должен комментировать выбранные регионы, он должен также иметь возможность легко перемещать блоки кода влево и вправо и автоматически наведите курсор на текущий уровень отступов, когда вы нажимаете Войти. Также может быть полезно сгибание кода.


Чтобы защитить от распада ссылок, вот содержание Guido van Rossum tweet:

@BSUCSClub Кончик Python: вы можете использовать многострочные строки в виде многострочных комментариев. Если они не используются как docstrings, они не генерируют никакого кода!: -)

+77
источник
другие ответы

Связанные вопросы


Похожие вопросы

Из принятого ответа...

Вы можете использовать строки с тремя кавычками. Когда они не являются docstring (первая вещь в классе/функции/модуле), они игнорируются.

Это просто неверно. В отличие от комментариев, тройные кавычки все еще анализируются и должны быть синтаксически действительными независимо от того, где они появляются в исходном коде.

Если вы попытаетесь запустить этот код...

def parse_token(token):
    """
    This function parses a token.
    TODO: write a decent docstring :-)
    """

    if token == '\\and':
        do_something()

    elif token == '\\or':
        do_something_else()

    elif token == '\\xor':
        '''
        Note that we still need to provide support for the deprecated
        token \xor. Hopefully we can drop support in libfoo 2.0.
        '''
        do_a_different_thing()

    else:
        raise ValueError

Вы получите либо...

ValueError: invalid \x escape

... на Python 2.x или...

SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 79-80: truncated \xXX escape

... на Python 3.x.

Единственный способ сделать многострочные комментарии, игнорируемые парсером, это...

elif token == '\\xor':
    # Note that we still need to provide support for the deprecated
    # token \xor. Hopefully we can drop support in libfoo 2.0.
    do_a_different_thing()
+41
источник

В Python 2.7 многострочный комментарий:

"""
This is a
multilline comment
"""

Если вы находитесь в классе, вы должны правильно его добавить.

Например:

class weather2():
   """
   def getStatus_code(self, url):
       world.url = url
       result = requests.get(url)
       return result.status_code
   """
+34
источник

AFAIK, Python не имеет комментариев блока. Для комментариев отдельных строк вы можете использовать символ #.

Если вы используете Notepad++, есть ярлык для комментирования блоков. Я уверен, что другие, такие как gVim и Emacs, имеют аналогичные функции.

+24
источник

Я думаю, что это не так, за исключением того, что многострочная строка не обрабатывается. Однако большинство, если не все Python IDE имеют короткий ключ для "комментирования" нескольких строк кода.

+12
источник

Если вы добавили комментарий в

"""
long comment here
"""

в середине скрипта, python/linters не будут повторно распознавать это. Складывание будет испорчено, так как вышеупомянутый комментарий не является частью стандартных рекомендаций. Его лучше использовать

# long comment
# here.

Если вы используете vim, вы можете плагины, такие как https://github.com/tpope/vim-commentary, автоматически комментировать длинные строки комментариев, нажав Vjgcc. Где Vj выбирает 2 строки кода, а gcc замечает их.

Если вы не хотите использовать плагины, подобные приведенному выше, вы можете использовать поиск и замену как

:.,.+1s/^/#/g.

Это заменит первый символ текущей и следующей строки на #.

+9
источник

Нет такой возможности многострочного комментария. # - единственный способ комментировать одну строку кода. Многие из вас ответили на комментарий как это решение. Хотя это, кажется, работает, но внутри '' 'в Python строки заключены в обычные строки, которые интерпретатор не игнорирует, как комментарий, используя #.

Проверьте официальную документацию здесь

+8
источник

Ну, вы можете попробовать это (при запуске цитируемого, вход в первый вопрос должен указываться с '):

"""
print("What your name? ")
myName = input()
print("It nice to meet you " + myName)
print("Number of characters is ")
print(len(myName))
age = input("What your age? ")
print("You will be " + str(int(age)+1) + " next year.")

"""
a = input()
print(a)
print(a*5)

Все, что заключено между """ будет прокомментировано.

Если вы ищете однострочные комментарии, то это #.

+5
источник

К сожалению, строковое не всегда можно использовать как комментарий! Поэтому безопаснее придерживаться стандарта, добавляющего каждую строку с #.

Вот пример:

test1 = [1, 2, 3, 4,]       # test1 contains 4 integers

test2 = [1, 2, '''3, 4,'''] # test2 contains 2 integers **and the string** '3, 4,'
+5
источник

На Python 2.7.13:

Не замужем:

"A sample single line comment "

Multiline:

"""
A sample
multiline comment
on PyCharm
"""
+3
источник

Как прокомментировать:

'''
   Comment what you want here
'''

или же

 """
    Comment what you want here
 """
+3
источник

Встроенные комментарии в python начинаются с хеш-символа.

hello = "Hello!" # this is inline comment
print(hello)

Здравствуйте!

Обратите внимание, что хеш-символ в строковом литерале является просто хеш-символом.

dial = "Dial #100 to make an emergency call."
print(dial)

Наберите # 100, чтобы сделать экстренный вызов.

Хеш-символ также можно использовать для однострочных или многострочных комментариев.

hello = "Hello"
world = "World"
# first print hello
# and print world
print(hello)
print(world)

Привет

Мир

Заключите текст в тройные двойные кавычки для поддержки строки документации.

def say_hello(name):
    """
    This is docstring comment and
    it support multi line.
    :param name it your name
    :type name str
    """
    return "Hello " + name + '!'


print(say_hello("John"))

Привет Джон!

Заключите текст в тройные одинарные кавычки для блочных комментариев.

'''
I don't care the params and
docstrings here.
'''
+3
источник

Многострочный комментарий в Python: Для меня и '' ', и "" "сработали

Пример:

a = 10
b = 20
c = a+b
'''
print ('hello')
'''
print ('Addition is : ',a+b)

Ex:

a = 10
b = 20
c = a+b
"""
print ('hello')
"""
print ('Addition is : ',a+b)
+1
источник

'' 'Многострочные комментарии начались ЗДЕСЬ

import tkinter as tk
root = tk.Tk()
w = tk.Label( text="Hello Tkinter")

logo = tk.PhotoImage(file="Python.PNG")

w1 = tk.Label(root, image=logo).pack(side="right")
explanation = """At Present, only GIF and PPM/PGM are supported but am
trying it with PNG. Interface does exit to allow image file to be added easily."""

w2 = tk.Label(root, justify=tk.LEFT,padx = 0, text=explanation).pack(side="left")
root.mainloop()

'' 'Многострочный комментарий заканчивается ЗДЕСЬ.. означает, что приведенный выше код не будет выполняться и является комментарием

+1
источник

Да, можно использовать оба

'''
Comments
'''

и

""" 
Comments
"""

Но единственное, что вы все должны помнить во время работы в IDE, вы должны "ЗАПУСТИТЬ" весь файл, чтобы его можно было принять в виде многострочных кодов. Строка за строкой "RUN" не будет работать должным образом и будет отображать ошибку.

+1
источник

Чтобы закомментировать несколько строк кода в Python, нужно просто использовать # однострочный комментарий в каждой строке:

# This is comment 1
# This is comment 2 
# This is comment 3

Для написания "правильных" многострочных комментариев в Python необходимо использовать многострочные строки с синтаксисом """ Python имеет функцию строк документации (или строк документации), которая дает программистам простой способ добавления быстрых заметок с каждым модулем Python, функция, класс и метод.

'''
This is
multiline
comment
'''

Также отметим, что вы можете получить доступ к docstring с помощью объекта класса, подобного этому

myobj.__doc__
+1
источник

Многострочный комментарий на самом деле не существует в Python. Приведенный ниже пример состоит из неназначенной строки, которая проверяется Python на наличие синтаксических ошибок. Несколько текстовых редакторов, таких как NotePad++ предоставляют нам ярлыки для комментирования написанного фрагмента кода или слов.

def foo():
    "This is a doc string."
    # A single line comment
    """
       This 
       is a multiline
       comment/String
    """
    """
    print "This is a sample foo function"
    print "This function has no arguments"
    """
    return True

Кроме того, CTRL + K ярлык в NotePad++ для блокировки комментариев, он добавляет # перед каждой строкой под выделением. CTRL + SHIFT + K предназначены для раскомментирования блока.

0
источник

Использование PyCharm IDE.

Вы можете comment и uncomment строки кода, используя Ctrl+/. Ctrl+/ комментирует или раскомментирует текущую или несколько выделенных строк однострочными комментариями ({# in Django templates, or # in Python scripts). Pressing Ctrl+Shift+/ для выбранного блока исходного кода в шаблоне Django окружает блок тегами {% comment %} and {% endcomment %}.


n = 5
while n > 0:
    n -= 1
    if n == 2:
        break
    print(n)

print("Loop ended.")

Выберите все строки, затем нажмите Ctrl + /


# n = 5
# while n > 0:
#     n -= 1
#     if n == 2:
#         break
#     print(n)

# print("Loop ended.")
0
источник

VS Code универсальный официальный многострочный комментарий.

macOS: выберите кодовый блок, затем + /

Windows: выберите блок кода, затем Ctrl + /

-1
источник

Я настоятельно рекомендую не использовать """ для многострочных комментариев!

Вот простой пример, чтобы подчеркнуть, почему:

print('{}\n{}'.format(
    'I am a string',
    """
    Some people consider me a
    multi-line comment, but 
    """
    'clearly I am also a string'
    )
)

теперь взгляните на вывод:

I am a string

    Some people consider me a
    multi-line comment, but 
    clearly I am also a string

Итак, получилось так, что многострочная строка не была обработана как комментарий, а объединена с 'clearly I'm also a string' для формирования одной строки.

Если вы хотите прокомментировать несколько строк, сделайте это в соответствии с рекомендациями PEP8:

print('{}\n{}'.format(
    'I am a string',
    # Some people consider me a
    # multi-line comment, but 
    'clearly I am also a string'
    )
)

Выход:

I am a string
clearly I am also a string
-1
источник

Выберите строки, которые вы хотите прокомментировать, а затем используйте "CTRL +?" комментировать или раскомментировать код Python в превосходном редакторе. Для одной строки вы можете использовать 'Shift + #'.

-2
источник

Посмотрите другие вопросы по меткам или Задайте вопрос