デスクリプタオブジェクト (descriptor object)¶
"デスクリプタ (descriptor)" は、あるオブジェクトのいくつかの属性について記述したオブジェクトです。デスクリプタオブジェクトは型オブジェクトの辞書内にあります。
-
PyTypeObject PyProperty_Type¶
- 次に属します: Stable ABI.
The type object for the built-in descriptor types.
-
PyObject *PyDescr_NewGetSet(PyTypeObject *type, struct PyGetSetDef *getset)¶
- 戻り値: 新しい参照。 次に属します: Stable ABI.
PyGetSetDef構造体 getset から、拡張型 type 用の新しい get-set デスクリプタを作成します。get-set デスクリプタは、インスタンスに直接格納される属性ではなく、C のゲッター関数とセッター関数で実装された属性を公開します。
tp_getsetのエントリーに対して作られるものと同じ種類のデスクリプタで、Python ではtypes.GetSetDescriptorTypeオブジェクトとして扱われます。成功するとデスクリプタへの 強参照 を返します。 失敗すると例外を設定して
NULLを返します。
-
PyObject *PyDescr_NewMember(PyTypeObject *type, struct PyMemberDef *member)¶
- 戻り値: 新しい参照。 次に属します: Stable ABI.
PyMemberDef構造体 member から、拡張型 type 用の新しいメンバーデスクリプタを作成します。メンバーデスクリプタは、型の C 構造体のフィールドを Python の属性として公開します。
tp_membersのエントリーに対して作られるものと同じ種類のデスクリプタで、Python ではtypes.MemberDescriptorTypeオブジェクトとして扱われます。成功するとデスクリプタへの 強参照 を返します。 失敗すると例外を設定して
NULLを返します。
-
PyTypeObject PyMemberDescr_Type¶
- 次に属します: Stable ABI.
PyMemberDef構造体から作成されるメンバーデスクリプタオブジェクトの型オブジェクトです。 これらのデスクリプタは C 構造体のフィールドを型の属性として公開し、Python のtypes.MemberDescriptorTypeオブジェクトに対応します。
-
PyTypeObject PyGetSetDescr_Type¶
- 次に属します: Stable ABI.
PyGetSetDef構造体から作成される get/set デスクリプタオブジェクトの型オブジェクトです。 これらのデスクリプタは、値を C のゲッター関数やセッター関数で計算する属性を実装し、多くの組み込み型の属性に使われています。 Python のtypes.GetSetDescriptorTypeオブジェクトに対応します。
-
PyObject *PyDescr_NewMethod(PyTypeObject *type, struct PyMethodDef *meth)¶
- 戻り値: 新しい参照。 次に属します: Stable ABI.
PyMethodDef構造体 meth から、拡張型 type 用の新しいメソッドデスクリプタを作成します。メソッドデスクリプタは C 関数を型のメソッドとして公開します。
tp_methodsのエントリーに対して作られるものと同じ種類のデスクリプタで、Python ではtypes.MethodDescriptorTypeオブジェクトとして扱われます。成功するとデスクリプタへの 強参照 を返します。 失敗すると例外を設定して
NULLを返します。
-
PyTypeObject PyMethodDescr_Type¶
- 次に属します: Stable ABI.
PyMethodDef構造体から作成されるメソッドデスクリプタオブジェクトの型オブジェクトです。 これらのデスクリプタは C 関数を型のメソッドとして公開し、Python のtypes.MethodDescriptorTypeオブジェクトに対応します。
-
PyTypeObject PyWrapperDescr_Type¶
- 次に属します: Stable ABI.
The type object for wrapper descriptor objects created by
PyDescr_NewWrapper()andPyWrapper_New().Wrapper descriptors are used internally to expose special methods such as
__repr__or__add__, which are implemented by type slots. The type is exposed in Python astypes.WrapperDescriptorType.
-
PyObject *PyDescr_NewWrapper(PyTypeObject *type, struct wrapperbase *base, void *wrapped)¶
- 戻り値: 新しい参照。
Create a new wrapper descriptor of type
PyWrapperDescr_Type.This function is meant for internal use only; it and related API (
struct wrapperbaseand thePyWrapperFlag_KEYWORDSflag) are exposed publicly for backwards compatibility reasons.See
PyCMethod_New()for wrapping a C function.
-
PyObject *PyDescr_NewClassMethod(PyTypeObject *type, PyMethodDef *method)¶
- 戻り値: 新しい参照。 次に属します: Stable ABI.
PyMethodDef構造体 method から、拡張型 type 用の新しいクラスメソッドデスクリプタを作成します。クラスメソッドデスクリプタは、アクセスされた際にインスタンスの代わりにクラスを受け取る C メソッドを公開します。
tp_methodsのMETH_CLASSエントリーに対して作られるものと同じ種類のデスクリプタで、Python ではtypes.ClassMethodDescriptorTypeオブジェクトとして扱われます。成功するとデスクリプタへの 強参照 を返します。 失敗すると例外を設定して
NULLを返します。
-
int PyDescr_IsData(PyObject *descr)¶
デスクリプタオブジェクト descr がデータ属性を表す場合はゼロ以外、メソッドを表す場合は
0を返します。 descr はデスクリプタオブジェクトでなければなりません。 エラーチェックは行いません。
-
PyObject *PyWrapper_New(PyObject *d, PyObject *self)¶
- 戻り値: 新しい参照。 次に属します: Stable ABI.
ラッパーデスクリプタ d とインスタンス self から、新しい束縛済みラッパーオブジェクトを作成します。
これは
PyDescr_NewWrapper()で作成されるラッパーデスクリプタを束縛したものです。 CPython はインスタンスを介してスロットラッパーにアクセスしたときにこのオブジェクトを作成し、Python ではtypes.MethodWrapperTypeオブジェクトとして扱われます。成功するとラッパーオブジェクトへの 強参照 を返します。 失敗すると例外を設定して
NULLを返します。
-
PyDescr_TYPE(descr)¶
Return a borrowed reference to the type that the descriptor descr belongs to. This is accessible as
__objclass__in Python.descr must be a descriptor object created by one of the
PyDescr_New*functions (an instance ofPyMethodDescr_Type,PyClassMethodDescr_Type,PyMemberDescr_Type,PyGetSetDescr_Type, orPyWrapperDescr_Type). If the passed descriptor is not an instance of one of these types, the behavior is undefined.
-
PyDescr_NAME(descr)¶
Return the name of the descriptor descr as a borrowed reference to a
strobject. This is available as__name__in Python.descr must be a descriptor object created by one of the
PyDescr_New*functions. If not, the behavior is undefined.
組み込みデスクリプタ¶
-
PyTypeObject PySuper_Type¶
- 次に属します: Stable ABI.
super オブジェクトの型オブジェクトです。 Python レベルの
superと同じオブジェクトです。
-
PyTypeObject PyClassMethod_Type¶
クラスメソッドオブジェクトの型です。 Python レベルの
classmethodと同じオブジェクトです。
-
PyTypeObject PyClassMethodDescr_Type¶
- 次に属します: Stable ABI.
The type object for C-level class method descriptor objects. This is the type of the descriptors created for
classmethod()defined in C extension types, and corresponds totypes.ClassMethodDescriptorTypeobjects in Python.
-
PyObject *PyClassMethod_New(PyObject *callable)¶
callable をラップする新しい
classmethodオブジェクトを作成します。 callable は呼び出し可能オブジェクトでなければならず、NULLにはできません。成功すると、新しいクラスメソッドデスクリプタへの 強参照 を返します。 失敗すると例外を設定して
NULLを返します。
-
PyTypeObject PyStaticMethod_Type¶
静的メソッドオブジェクトの型です。 Python レベルの
staticmethodと同じオブジェクトです。
-
PyObject *PyStaticMethod_New(PyObject *callable)¶
callable をラップする新しい
staticmethodオブジェクトを作成します。 callable は呼び出し可能オブジェクトでなければならず、NULLにはできません。成功すると、新しい静的メソッドデスクリプタへの 強参照 を返します。 失敗すると例外を設定して
NULLを返します。