On 4/4/2022 11:07 AM, Coyot Linden (Glenn Glazer) wrote:
I would like to point out another use case of triple quotes outside of docstrings.

A docstring is *any* string literal, regardless of quotes, that is a statement in itself and is the *first* statement in the body of a module, class, or function. Triple quotes are routinely used for multiline strings elsewhere.

We do a lot of SQL here and so doing a parameterized query like:

"""SELECT foo
FROM bar
WHERE baz = %s"""

Others do the same. To be useful, you have to either bind the query string to something for use later

query = """query string"""

or immediately use it in an expression

cursor = """SELECT %s"" % 'abc'

In neither case will it be interpreted as a docstring.

I would welcome a multiline comment format that didn't involve docstrings.

Some people already use multiline strings for that, in positions where they do not become the docstring. At least in CPython, comment strings, at least in functions, appear to be omitted from the code object.

def f():
    'docstring'
    'other string'

fc = f.__code__

fc.co_consts
# ('docstring', None)  # 'other string' absent.

import dis
dis.dis(f)  # 'other string not loaded from anywhere else.
#  1           0 RESUME                   0
#
#  3           2 LOAD_CONST               1 (None)
#              4 RETURN_VALUE


--
Terry Jan Reedy

_______________________________________________
Python-Dev mailing list -- python-dev@python.org
To unsubscribe send an email to python-dev-le...@python.org
https://mail.python.org/mailman3/lists/python-dev.python.org/
Message archived at 
https://mail.python.org/archives/list/python-dev@python.org/message/QBRWBJW6NTBD4LIFENUX7U6EUA5BISF7/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to