Коментарі у порівнянні з рядком в python

Я просто новий для python.
як я знаю, в python багаторядкові коментарі робляться так

"""
this is a comments
"""

але розгляньте цей код

somevariable="""this is a variable"""
print somevariable

він друкує це змінна
Чи є коментарі та рядки ті самі в python або вони різні?

3

8 Відповіді

Перший - це не коментар, це рядок. Але оскільки ви не робите нічого з цим рядком (надрукуйте його, присвоюючи його змінній тощо), все інтерпретатор це, скажімо, "Так, це правильно!" і повністю ігнорувати. Ефективно зробити це таким же, як і коментар, оскільки це довільна купа текстів, проігноруваних інтерпретатором.

5
додано

У Python немає багаторядкових коментарів. Вони обидва просто струни. Перший, як правило, використовується як docstring і буде пов'язаний з функцією/класом/модулем, тоді як інший буде присвоєно змінній.

4
додано

Чи є коментарі та рядки в python однакові?

Строго кажучи, вони не такі ж. Але у вашому питанні те, що ви називаєте "коментарем", насправді є рядком. Коментар - все, що з'являється в одному рядку після символу # .

a.py:

"""
comment1
"""
# comment2

Зараз:

% strings a.pyc | grep comment
comment1

Як ви бачите, comment2 не є частиною скомпільованого байтового коду, а comment1 - оскільки це не коментар, це рядок.

Як інші вказали, рядок вважається docstring . Звичайно, документи docstring s використовуються для документування вашого коду, тоді як коментарі використовуються, добре, для коментування та не входять до документації.

2
додано
+1, щоб вказати детальну інформацію про те, що досторінки включені в байт-код.
додано Автор Imre Kerr, джерело

Так, вони однакові

It is called a docstring You can find more information about this type of string here: http://www.pythonforbeginners.com/basics/python-docstrings/

2
додано

Перший фрагмент не є коментарем. Це рядок. Коментарі в Python мають префікс символу # .

1
додано
>>> somevariable="""
... this is not a comment
... """
>>> print(somevariable)

this is not a comment
1
додано

Плутанина потрапляє через дескриптори.

Це насправді не коментар, а спосіб зробити рядок з кількома рядками:

>>> """This is a string
... with line breaks"""
'This is a string\nwith line breaks'

Ті самі позначення використовуються в класах та функціях документування їх:

>>> def my_function():
...     """This function does stupid things."""
...     return 1/0
...
>>> my_function.__doc__
'This function does stupid things.'
>>> my_function()
Traceback (most recent call last):
  File "", line 1, in 
  File "", line 3, in my_function
ZeroDivisionError: division by zero

Отже, ваш код:

somevariable = """this is a variable"""

дійсно рівний:

somevariable = "this is a variable"
1
додано

Так, вони однакові. Це конвенція включати в себе рядок коментарів як перше твердження функції або класу.

Див. PEP 257 - Договірні конвенції .

1
додано
ІТ КПІ - Python
ІТ КПІ - Python
625 учасників

Канал обговорень про всякі штуки зі світу пайтону. Прохання: 0. мати повагу одне до одного; 1. не матюкатися в сторону людей; 2. не захламляти тред повідомленнями по одному слову;