Ответ 1
Нет никакой разницы; Python распознает все 3. Он ищет шаблон:
coding[:=]\s*([-\w.]+)
в первых двух строках файла (который также должен начинаться с #
).
Это буквальное "кодирование" текста, за которым следует либо двоеточие, либо знак равенства, за которым следуют необязательные пробелы. Любое слово, штриховые или точечные символы, следующие за этим шаблоном, считаются кодеком.
-*-
представляет собой синтаксис, специфичный для Emacs; чтобы текстовый редактор знал, какую кодировку использовать. Это делает комментарий полезным для двух инструментов. VIM поддерживает аналогичный синтаксис.