Pregunta

Bien, soy consciente de que las cadenas entre comillas triples pueden servir como comentarios de varias líneas.Por ejemplo,

"""Hello, I am a 
   multiline comment"""

y

'''Hello, I am a 
   multiline comment'''

Pero técnicamente hablando son cadenas, ¿correcto?

Busqué en Google y leí la guía de estilo de Python, pero no pude encontrar una respuesta técnica de por qué no existe una implementación formal de comentarios de tipo multilínea /* */.No tengo ningún problema en utilizar comillas triples, pero tengo un poco de curiosidad por saber qué llevó a esta decisión de diseño.

¿Fue útil?

Solución

Dudo que obtendrá una respuesta mejor que "Guido no se sentía la necesidad de que los comentarios de varias líneas".

tuiteó acerca de esto:

  

punta del pitón: Puede utilizar cadenas multilínea y comentarios multilínea. A menos que se utiliza como cadenas de documentación, que generan ningún código! : -)

Otros consejos

Los comentarios de varias líneas son fácilmente rompible. ¿Qué pasa si usted tiene la siguiente en un simple programa de la calculadora?

operation = ''
print("Pick an operation:  +-*/")
# Get user input here

Trate de comentar que, con un comentario de varias líneas:

/*
operation = ''
print("Pick an operation:  +-*/")
# Get user input here
*/

Vaya, la cadena contiene el comentario final delimitador.

-Triple texto de la cita no se debe considerar los comentarios multilínea; por convención, son docstrings . Deben describir lo que hace su código y cómo usarlo, pero no para cosas como comentando bloques de código.

Según Guido, comentarios de varias líneas en Python son contiguos comentarios de una sola línea (búsqueda de "bloques de comentarios").

Para comentar bloques de código, a veces uso el siguiente patrón:

if False:
    # A bunch of code

Esto probablemente se remonta al concepto de la base de que debe haber una manera obvia de hacer una tarea. Estilos adicionales comentario Añadir complicaciones innecesarias y podrían disminuir la legibilidad.

Bueno, las comillas triples se utilizan como los comentarios de varias líneas en las cadenas de documentación. Y # comentarios se utilizan como comentarios en línea y la gente se utilizan para ello.

La mayoría de los lenguajes de script no tiene comentarios multilínea tampoco. Tal vez esa es la causa?

PEP 0008 , sección Comentarios

Y ver si su editor de Python ofrece alguna combinación de teclas para el bloque de comentarios. Emacs soporta, así como Eclipse, probablemente la mayoría de los IDE decente hace.

El Zen de Python :

No debe haber uno-- y preferiblemente sólo una manera --obvious para hacerlo.

Personalmente, mi estilo de comentario en Java es como

/*
 * My multi-line comment in Java
 */

Por lo tanto, tener comentarios de una sola línea no es tan malo si su estilo es típico del ejemplo anterior porque, en comparación, tendría

#
# My multi-line comment in Python
#

VB.NET también es un lenguaje con comentarios de una sola línea, y personalmente me resulta molesto ya que los comentarios terminan pareciéndose menos a comentarios de me gusta y más a algún tipo de cita.

'
' This is a VB.NET example
'

Los comentarios de una sola línea terminan teniendo menos uso de caracteres que los comentarios de varias líneas, y es menos probable que algunos caracteres poco fiables en una declaración de expresiones regulares los escapen.Aunque tendería a estar de acuerdo con Ned.

Para comentar un bloque de código en el IDE PyCharm :

  • Código | Comentar con Línea de comentario
  • Windows o Linux: Ctrl + /
  • Mac OS: comando + /
# This
# is
# a 
# multi-line
# comment

Uso comentario de bloque o buscar y reemplazar (s / ^ / # / g) en su editor para lograr este objetivo.

He resuelto esto mediante la descarga de una macro para mi editor de texto (Textpad) que me permite poner de relieve las líneas y luego inserta # en la primera de cada línea. Una macro similar elimina los # 's. Algunos pueden preguntarse por qué es necesario multilínea pero viene muy bien cuando se está tratando de "desactivar" un bloque de código para fines de depuración.

Debido a que el # convención es muy común, y en realidad no hay nada que puede hacer con un comentario de varias líneas que no se puede con un comentario -sign #. Es un accidente histórico, al igual que los ancestros de los comentarios /* ... */ que se remontan a PL / I,

Supongamos que sólo estaban considerados innecesarios. Puesto que es tan fácil de simplemente escribir #a comment, los comentarios de varias líneas sólo puede consistir en muchos comentarios de una sola línea.

En HTML , por el contrario, hay más de una necesidad de multiliners. Es difícil mantener <!--comments like this--> escribir.

Esto es sólo una suposición, pero ..

Debido a que son cadenas, que tienen algún valor semántico (el compilador no deshacerse de ellos), por lo tanto, tiene sentido que les permite ser utilizado como cadenas de documentación. Que en realidad se convierten en parte de la AST , por lo que la extracción de la documentación se hace más fácil.

Además, comentarios de varias líneas son una perra . Siento decirlo, pero independientemente de la lengua, no los uso para cualquier otra cosa que la depuración. Digamos que tiene un código como este:

void someFunction()
{
    Something
    /*Some comments*/
    Something else
}

A continuación, se entera de que hay algo en su código no se puede arreglar con el depurador, por lo que puede iniciar la depuración manualmente comentando los desconchados cada vez más pequeñas de código con theese comentarios multilínea. Esto le dará la función:

void someFunction()
{ /*
    Something
   /* Comments */
   Something more*/
}

Esto es realmente irritante.

Multilínea comentarios usando IDLE en

  • Mac OS X , después de la selección de código, comentar un bloque de código con Ctrl + 3 y elimine el uso de Ctrl + 4 .

  • Windows , después de la selección de código, comentar un bloque de código con Ctrl + Alt + 3 y elimine usando Ctrl + a + 4 .

Para cualquier persona que busque los comentarios de varias líneas en Python - usando el formato de triple cita puede tener algunas consecuencias problemáticas, como acabo aprendido de la manera difícil. Considere lo siguiente:

this_dict = {
    'name': 'Bob',

"""
This is a multiline comment in the middle of a dictionary
"""

    'species': 'Cat'
}

El comentario de varias líneas se metió en la siguiente cadena, echar a perder la 'species' clave. Es mejor sólo tiene que utilizar # para comentarios.

Recuerdo haber leído acerca de un tipo que pondría su multilínea comenta en una variable triple citado:

x = '''
This is my
super-long mega-comment.
Wow there are a lot of lines
going on here!
'''

Esto toma un poco de memoria, sino que le da funcionalidad comentario de varias líneas, y además la mayoría de los editores resaltará la sintaxis para usted:)

También es fácil para comentar código simplemente envolviéndolo con

x = '''

y

'''
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top