separar - reemplazar caracteres en python
¿Por qué python utiliza comillas triples no convencionales para los comentarios? (4)
Algunas de las respuestas obtuvieron muchos de los puntos, pero no dan una visión completa de cómo funcionan las cosas. Para resumir...
# comment
es cómo Python hace comentarios reales (similar a bash, y algunos otros idiomas). Python solo tiene comentarios "hasta el final de la línea", no tiene un envoltorio de comentarios multilínea explícito (a diferencia de javascript''s /* .. */
). La mayoría de los IDE de Python le permiten seleccionar y comentar un bloque a la vez, así es como muchas personas manejan esa situación.
Luego están las cadenas de python normales de una sola línea: pueden usar ''
o "
comillas (por ejemplo, ''foo''
"bar"
). La principal limitación de estas es que no se ajustan en varias líneas. Eso es lo que son las cadenas de varias líneas para: Estas son cadenas rodeadas por comillas simples simples o dobles ( ''''''
o """
) y terminan solo cuando se encuentra un terminador no escapado coincidente. Pueden continuar tantas líneas como sea necesario e incluir todos los espacios en blanco intermedios.
Cualquiera de estos dos tipos de cadena define un objeto de cadena completamente normal. Se les puede asignar un nombre de variable, se les aplican operadores, etc. Una vez analizados, no hay diferencias entre ninguno de los formatos. Sin embargo, hay dos casos especiales basados en dónde está la cadena y cómo se usa ...
Primero, si una cadena acaba de escribirse, sin operaciones adicionales aplicadas y no asignada a una variable, ¿qué sucede con ella? Cuando el código se ejecuta, la cadena básica se descarta básicamente. Por lo tanto, a las personas les resulta conveniente comentar grandes cantidades de código de Python mediante cadenas de varias líneas (lo que le permite escapar de cualquier cadena interna de múltiples líneas). Esto no es tan común, o semánticamente correcto, pero está permitido.
El segundo uso es que las cadenas simples que siguen inmediatamente después de una def Foo()
, class Foo()
o el inicio de un módulo, se tratan como una cadena que contiene documentación para ese objeto y se almacenan en el atributo __doc__
del objeto. . Este es el caso más común donde las cadenas pueden parecer que son un "comentario". La diferencia es que están desempeñando un papel activo como parte del código analizado, se almacenan en __doc__
... y, a diferencia de un comentario, se pueden leer en tiempo de ejecución.
¿Por qué Python no usó el estilo tradicional de comentarios como C / C ++ / Java usa:
/**
* Comment lines
* More comment lines
*/
// line comments
// line comments
//
¿Hay una razón específica para esto o es simplemente arbitrario?
La mayoría de los lenguajes de scripting utilizan # como marcador de comentario para omitir automáticamente el shebang (#!) Que especifica al cargador de programas el intérprete a ejecutar (como en #! / Bin / bash). Alternativamente, se podría indicar al intérprete que omita automáticamente la primera línea, pero es mucho más conveniente simplemente definir # como marcador de comentario y eso es todo, por lo que se omite como consecuencia.
Las comillas triples no son comentarios. Son literales de cadena que abarcan varias líneas e incluyen esos saltos de línea en la cadena resultante. Esto te permite usar
somestr = """This is a rather long string containing
several lines of text just as you would do in C.
Note that whitespace at the beginning of the line is/
significant."""
en lugar de
somestr = "This is a rather long string containing/n/
several lines of text just as you would do in C./n/
Note that whitespace at the beginning of the line is/
significant."
Python no usa comillas triples para los comentarios. Los comentarios usan el carácter de hash (aka libra):
# this is a comment
La cita triple es una cadena de documentación y, a diferencia de un comentario, en realidad está disponible como una cadena real para el programa:
>>> def bla():
... """Print the answer"""
... print 42
...
>>> bla.__doc__
''Print the answer''
>>> help(bla)
Help on function bla in module __main__:
bla()
Print the answer
No es estrictamente obligatorio utilizar comillas triples, siempre que sea una cadena. Usar """
es solo una convención (y tiene la ventaja de ser multilínea).