Python

센티널(Sentinel) 객체

PyTypeObject PySentinel_Type

PyTypeObject 인스턴스는 파이썬 sentinel 타입을 나타냅니다. 이는 sentinel 과 동일한 객체입니다.

Added in version 3.15.

int PySentinel_Check(PyObject *o)

osentinel 객체이거나 서브 타입인 경우 참을 반환합니다. 현재 sentinel 타입은 서브 클래스를 허용하지 않으므로 이 확인은 정확하게 수행됩니다. 향후 파이썬 버전에서는 서브 타이핑을 허용하도록 변경될 수 있습니다. 이 함수는 항상 성공합니다.

Added in version 3.15.

int PySentinel_CheckExact(PyObject *o)

osentinel 객체이지만 서브 타입은 아닌 경우 참을 반환합니다. 현재 sentinel 타입은 서브 클래스를 허용하지 않습니다. 향후 파이썬 버전에서는 서브 타이핑을 허용하도록 변경될 수 있습니다. 이 함수는 항상 성공합니다.

Added in version 3.15.

PyObject *PySentinel_New(const char *name, const char *module_name, const char *repr)
반환값: 새 참조.

__name__name 으로 설정되고 __module__module_name 으로 설정된 새로운 sentinel 객체를 반환합니다. nameNULL 이 아니어야 합니다. module_nameNULL 이면 __module__None 으로 설정됩니다. reprNULL 이면 repr()__name__ 을 반환합니다. 실패 시 예외를 설정하고 NULL 을 반환합니다.

피클링이 작동하려면 module_name*은 가져올 수 있는 모듈의 이름이어야 하며, 센티널은 해당 모듈 내에서 *name*과 일치하는 경로로 접근 가능해야 합니다. Pickle은 *name*을 *module_name 내의 전역 변수 이름으로 처리합니다(참조: object.__reduce__()).

Added in version 3.15.