¿Cuál es la diferencia entre ‘coding = utf8’ y ‘- * – coding: utf-8 – * -‘?

¿Hay alguna diferencia entre usar

#coding=utf8 

y

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

Qué pasa

 # encoding: utf-8 

No hay diferencia; Python reconoce todos los 3. Busca el patrón:

 coding[:=]\s*([-\w.]+) 

en las dos primeras líneas del archivo (que también debe comenzar con un # ).

Ese es el texto literal ‘encoding’, seguido de dos puntos o un signo igual, seguido de un espacio en blanco opcional. Cualquier palabra, guión o punto que sigue ese patrón se lee como el códec.

La -*- es una syntax específica de Emacs ; dejar que el editor de texto sepa qué encoding usar. Hace el comentario útil para dos herramientas. VIM soporta syntax similar .

Consulte PEP 263: Definición de codificaciones de código fuente de Python .