## 6 その他いろいろ

上にあげたほとんどの関数は、その値として `0` を与えれば 省略できることを忘れないでください。それぞれの関数で提供しなければならない 型の定義があり、これらは Python の include 用ディレクトリの object.h というファイルにおさめられています。これは Python の 配布ソースに含まれています。

新しいデータ型に何らかのメソッドを実装するやりかたを学ぶには、 以下の方法がおすすめです: Python の配布されているソースをダウンロードして 展開する。Objects ディレクトリへ行き、C のソースファイルから 「`tp_`欲しい名前」の文字列で検索する (たとえば `tp_print` とか `tp_compare` のように)。こうすれば実装したい例がみつかるでしょう。

あるオブジェクトが、いま実装している型のインスタンスであるかどうかを 確かめたい場合には、 `PyObject_TypeCheck` 関数を使ってください。 使用例は以下のようなかんじです:

        if (! PyObject_TypeCheck(some_object, &MyType)) {
            PyErr_SetString(PyExc_TypeError, "arg #1 not a mything");
            return NULL;
        }