Pythonのメタプログラミング (__metaclass__) は組み込み関数 type の普段利用しない隠れた機能や、 普通は利用しない特殊メソッド __new__ などを理解する必要があり 理解するのが結構難しい。 あまり関連情報がまとまってるドキュメントがなくて理解するのに苦労したので情報をまとめておきました。 目次 事前知識 type とクラス定義のあまり知られていない関係 特殊メソッド __new__ __metaclass__ typeの継承 メタクラスの例 実装の解説 事前知識 Customizing class creation (日本語:クラス生成をカスタマイズする) を読むと、型を取得するのに普通利用するbuiltin関数 type を継承していたり、 普通利用することのない __new__ が定義されていたりして、 type の隠された機能と __new__ につい