これは何? タイトルに書いた Python では super() は スーパークラスとは限らない という事実を知ってびっくりしたので、どういうときにそうなるか、困りそうなポイント、なんかを考えたのでそのことを記した記事。 先にちょっと書いておくと。 super() が書かれているクラスをいくら見てもわからないクラスを指すことがあるよ、という話。 親の親のこともあるよ、とかではない。だったらびっくりしない。 super() って 親クラスのメソッドを呼ぶための関数だとかよく書いてあるけど、公式には違うことが書いてある(強調引用者)。 super([type[, object-or-type]]) メソッドの呼び出しを type の親または兄弟クラスに委譲するプロキシオブジェクトを返します。 ここを見るだけで、親じゃないことがあるということがわかる。そしてその先には 2 つ目の用途は、動的な実

