몇몇 파이썬 구조는 (언제 멈추는지를 알기 위해) 센티넬을 필요로하는 것 같습니다. 그렇다면 PyMethodDef
의 배열과 같은 일부 요소의 경우, NULL
초로 초기화되는 감시 요소가있는 이유는 무엇입니까? 예를 zip
를 들어PyMethodDef 배열에 다중 NULL을 포함하는 센티넬 요소가 필요한 이유는 무엇입니까?
:
static PyMethodDef zip_methods[] = {
{"__reduce__", (PyCFunction)zip_reduce, METH_NOARGS, reduce_doc},
{NULL, NULL} /* sentinel */
};
왜 "센티넬 배열"의 마지막 PyMethodDef
두 NULL
의이 있습니까? 왜 1만이 아닌가? 또는 __reduce__
에 4 개의 항목이있는 이유는 무엇입니까 4 NULL
을 센티넬 요소로 사용 하시겠습니까?
@Olaf 왜 C 태그를 제거합니까? 그것은 결국 여기에서 조사하고있는 C 코드입니다. – MSeifert
"_ C가"멈춰야 할 때 "를 알 필요가 있다는 것을 깨닫습니다. - 그게 언어의 잘못이고 아무런 요구 사항이 아니며 C의 대부분의 배열에도 사용되지 않습니다. – Olaf
아니요, 잘못 설정된 Python 구현을 조사하고 있습니다. 전제 조건. – Olaf