†ようやく__build_class__関数の実装であるbuiltin___build_class__に行きつきました。今回はこの関数が何をしているのかを見ていきます。builtin___build_class__は長いので段階的に見ていきます。大きく分けると以下の処理を行っています。長くなるので引数チェック(エラー終了)系はカットします。Foo(metaclass=Meta)」みたいにメタクラスを指定したときです。今回はメタクラスは指定しておらず、またスーパークラスも指定していません。この場合、typeがメタクラスになります。メタクラスがtypeに決定されたらisclassは0でいい気がするんですけどね。PyFunction_GET_CLOSURE(func));本筋ではない、と言ってもいずれは見ないといけないのでちゃんと追っかけていきましょう。具体的には_PyObject_GetAttrIdのことです。†まず_PyObject_GetAttrId。これはPyObject_GetAttrを呼んでるだけです。NULL;}はい、TypeObjectが出てきました。そのメンバの関数ポインタを使って関数を実行しています。ここでType_Typeの定義(Objects/typeobject.c)を見てみる。*/というわけで、type_getattroが呼び出されることになります。