salto poner linea imprimir código como comentarios comentar python encoding comments

poner - ¿''#-*-coding: utf-8-*-'' también es un comentario en Python?



imprimir variables en python (2)

Consulte las declaraciones de codificación en el Manual de referencia de Python:

Si un comentario en la primera o segunda línea del script de Python coincide con la coding[=:]/s*([-/w.]+) expresión regular coding[=:]/s*([-/w.]+) , Este comentario se procesa como una declaración de codificación; El primer grupo de esta expresión nombra la codificación del archivo de código fuente.

(El énfasis es mío)

Entonces sí, es un comentario, uno especial. Es especial porque el analizador intentará actuar sobre él y no lo ignorará como lo hace para comentarios que no están en la primera o segunda línea. Tome, por ejemplo, una declaración de codificación no registrada en un archivo de muestra decl.py :

# # -*- coding: unknown-encoding -*- print("foo")

Si intenta ejecutar esto, Python lo intentará y procesará, fallará y se quejará:

python decl.py File "decl.py", line 1 SyntaxError: encoding problem: unknown-encoding

Como usamos # para insertar comentarios en Python, entonces, ¿cómo toma Python:

# -*- coding: utf-8 -*-

¿diferentemente?


Sí, también es un comentario. Y el contenido de ese comentario tiene un significado especial si se encuentra en la parte superior del archivo, en las dos primeras líneas.

De la documentación de las declaraciones de codificación :

Si un comentario en la primera o segunda línea del script de Python coincide con la coding[=:]/s*([-/w.]+) expresión regular coding[=:]/s*([-/w.]+) , Este comentario se procesa como una declaración de codificación; El primer grupo de esta expresión nombra la codificación del archivo de código fuente. La declaración de codificación debe aparecer en una línea propia. Si es la segunda línea, la primera línea también debe ser una línea de solo comentario.

Tenga en cuenta que no importa qué códec deba usarse para leer el archivo, en lo que respecta a los comentarios. Python normalmente ignoraría todo después del token # , y en todos los códecs de código fuente aceptados, los caracteres de # , declaración de codificación y separador de línea se codifican exactamente igual ya que son todos superconjuntos de ASCII. Por lo tanto, todo lo que tiene que hacer el analizador es leer una línea, buscar el texto especial en el comentario, leer otra si es necesario, buscar el comentario, luego configurar el analizador para leer los datos de acuerdo con el códec dado.

Dado que se requiere que el comentario sea el primero o el segundo en el archivo (y si es la segunda línea, la primera línea también debe ser un comentario), esto es completamente seguro, ya que el códec configurado solo puede marcar la diferencia en líneas sin comentarios de todos modos.