いくつかのPython構造には、(いつ停止するかを知るために)センチネルが必要なようです。しかし、なぜPyMethodDef
の配列のように、複数のNULL
で初期化されたセンチネル要素があるのでしょうか?たとえばzip
についてはPyMethodDef配列に複数のNULLを含むsentinel要素が必要なのはなぜですか?
:
static PyMethodDef zip_methods[] = {
{"__reduce__", (PyCFunction)zip_reduce, METH_NOARGS, reduce_doc},
{NULL, NULL} /* sentinel */
};
なぜ "センチネル配列" の最後のPyMethodDef
は2つのNULL
のがありますか?なぜただ1つではないのですか?または、__reduce__
に4つのエントリがあるとしたら、4 NULL
をセンチネル要素として使用しますか?
@OlafなぜCタグを削除するのですか?結局私はここで調べているのはCコードだ。 – MSeifert
"_私は、Cが"停止 "する必要がある時を知るためにはセンチネルが必要であることを認識しています - それは間違っていて、言語の要件もなく、Cのほとんどの配列にも使用されていません。 – Olaf
いいえ、Pythonの実装を間違って前提条件 – Olaf