pythonのプログラムは先頭行(あるいはシェバンの次の二行目)でファイルの文字コードを指定することができます。エンコーディング宣言といいます。
こんなのとか
# coding: UTF-8
こういうのもありますね。これはemacsに自動認識させるための書式らしい*1。
# -*- coding: utf-8 -*-
これをずっと書いてたんだけど、PEP8を読んでいたらこんな記述に気づきました。
ASCII (Python 2) や UTF-8 (Python 3) を使用しているファイルにはエンコーディング宣言を入れるべきではありません。
えぇぇぇぇ!? と思ったんだけど、何回読み直しても「デフォルトエンコーディング使うならエンコーディング宣言は書くなよ!」と書いてあるようにしか読めない。
デフォルトエンコーディングを使うなら不要なのは知っていたけど、コーディング規約で非推奨にされてたのですね・・・。
ということで、「PEP8に準拠しろよ!」というのはpython使いの常識なので(本当か?)、そして私はpython3しか書かないので、個人的には今後コーディング宣言は使わないことにしました。シェバンも必要に迫られない限りは書かない人間なので、今後私のプログラムは一行目からimportで始まることに。・・・ちょっと寂しい気もするけど、すっきりはする。
「入れるべきではない」とまで言い切っているのは少し不思議な感じはするけど、不要なものをわざわざ書けというよりは良いのかもしれませんね。
*1:そのくせemacs使いの僕は面倒くさくて上ので済ませてきたんだけど