上にあげたほとんどの関数は、その値として 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; }