Descriptor(描述器)物件¶
"Descriptor" 是描述物件某些屬性的物件,它們存在於型別物件的 dictionary(字典)中。
-
PyObject *PyDescr_NewGetSet(PyTypeObject *type, struct PyGetSetDef *getset)¶
- 回傳值:新的參照。 為 穩定 ABI 的一部分.
Create a new get-set descriptor for extension type type from the
PyGetSetDefstructure getset.Get-set descriptors expose attributes implemented by C getter and setter functions rather than stored directly in the instance. This is the same kind of descriptor created for entries in
tp_getset, and it appears in Python as atypes.GetSetDescriptorTypeobject.On success, return a strong reference to the descriptor. Return
NULLwith an exception set on failure.
-
PyObject *PyDescr_NewMember(PyTypeObject *type, struct PyMemberDef *member)¶
- 回傳值:新的參照。 為 穩定 ABI 的一部分.
Create a new member descriptor for extension type type from the
PyMemberDefstructure member.Member descriptors expose fields in the type's C struct as Python attributes. This is the same kind of descriptor created for entries in
tp_members, and it appears in Python as atypes.MemberDescriptorTypeobject.On success, return a strong reference to the descriptor. Return
NULLwith an exception set on failure.
-
PyTypeObject PyMemberDescr_Type¶
- 為 穩定 ABI 的一部分.
The type object for member descriptor objects created from
PyMemberDefstructures. These descriptors expose fields of a C struct as attributes on a type, and correspond totypes.MemberDescriptorTypeobjects in Python.
-
PyTypeObject PyGetSetDescr_Type¶
- 為 穩定 ABI 的一部分.
The type object for get/set descriptor objects created from
PyGetSetDefstructures. These descriptors implement attributes whose value is computed by C getter and setter functions, and are used for many built-in type attributes. They correspond totypes.GetSetDescriptorTypeobjects in Python.
-
PyObject *PyDescr_NewMethod(PyTypeObject *type, struct PyMethodDef *meth)¶
- 回傳值:新的參照。 為 穩定 ABI 的一部分.
Create a new method descriptor for extension type type from the
PyMethodDefstructure meth.Method descriptors expose C functions as methods on a type. This is the same kind of descriptor created for entries in
tp_methods, and it appears in Python as atypes.MethodDescriptorTypeobject.On success, return a strong reference to the descriptor. Return
NULLwith an exception set on failure.
-
PyTypeObject PyMethodDescr_Type¶
- 為 穩定 ABI 的一部分.
The type object for method descriptor objects created from
PyMethodDefstructures. These descriptors expose C functions as methods on a type, and correspond totypes.MethodDescriptorTypeobjects in Python.
-
struct wrapperbase¶
Describes a slot wrapper used by
PyDescr_NewWrapper().Each
wrapperbaserecord stores the Python-visible name and metadata for a special method implemented by a type slot, together with the wrapper function used to adapt that slot to Python's calling convention.
-
PyObject *PyDescr_NewWrapper(PyTypeObject *type, struct wrapperbase *base, void *wrapped)¶
- 回傳值:新的參照。
Create a new wrapper descriptor for extension type type from the
wrapperbasestructure base and the wrapped slot function pointer wrapped.Wrapper descriptors expose special methods implemented by type slots. This is the same kind of descriptor that CPython creates for slot-based special methods such as
__repr__or__add__, and it appears in Python as atypes.WrapperDescriptorTypeobject.On success, return a strong reference to the descriptor. Return
NULLwith an exception set on failure.
-
PyTypeObject PyWrapperDescr_Type¶
- 為 穩定 ABI 的一部分.
The type object for wrapper descriptor objects created by
PyDescr_NewWrapper()andPyWrapper_New(). Wrapper descriptors are used internally to expose special methods implemented via wrapper structures, and appear in Python astypes.WrapperDescriptorTypeobjects.
-
PyObject *PyDescr_NewClassMethod(PyTypeObject *type, PyMethodDef *method)¶
- 回傳值:新的參照。 為 穩定 ABI 的一部分.
Create a new class method descriptor for extension type type from the
PyMethodDefstructure method.Class method descriptors expose C methods that receive the class rather than an instance when accessed. This is the same kind of descriptor created for
METH_CLASSentries intp_methods, and it appears in Python as atypes.ClassMethodDescriptorTypeobject.On success, return a strong reference to the descriptor. Return
NULLwith an exception set on failure.
-
int PyDescr_IsData(PyObject *descr)¶
如果 descriptor 物件 descr 描述的是一個資料屬性則回傳非零值,或者如果它描述的是一個方法則回傳
0。descr 必須為一個 descriptor 物件;沒有錯誤檢查。
-
PyObject *PyWrapper_New(PyObject *d, PyObject *self)¶
- 回傳值:新的參照。 為 穩定 ABI 的一部分.
Create a new bound wrapper object from the wrapper descriptor d and the instance self.
This is the bound form of a wrapper descriptor created by
PyDescr_NewWrapper(). CPython creates these objects when a slot wrapper is accessed through an instance, and they appear in Python astypes.MethodWrapperTypeobjects.On success, return a strong reference to the wrapper object. Return
NULLwith an exception set on failure.
-
PyDescr_COMMON¶
This is a soft deprecated macro including the common fields for a descriptor object.
This was included in Python's C API by mistake; do not use it in extensions. For creating custom descriptor objects, create a class implementing the descriptor protocol (
tp_descr_getandtp_descr_set).
內建描述器¶
-
PyTypeObject PyProperty_Type¶
- 為 穩定 ABI 的一部分.
The type object for property objects. This is the same object as
propertyin the Python layer.
-
PyTypeObject PySuper_Type¶
- 為 穩定 ABI 的一部分.
The type object for super objects. This is the same object as
superin the Python layer.
-
PyTypeObject PyClassMethod_Type¶
The type of class method objects. This is the same object as
classmethodin the Python layer.
-
PyTypeObject PyClassMethodDescr_Type¶
- 為 穩定 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)¶
Create a new
classmethodobject wrapping callable. callable must be a callable object and must not beNULL.On success, this function returns a strong reference to a new class method descriptor. On failure, this function returns
NULLwith an exception set.
-
PyTypeObject PyStaticMethod_Type¶
The type of static method objects. This is the same object as
staticmethodin the Python layer.
-
PyObject *PyStaticMethod_New(PyObject *callable)¶
Create a new
staticmethodobject wrapping callable. callable must be a callable object and must not beNULL.On success, this function returns a strong reference to a new static method descriptor. On failure, this function returns
NULLwith an exception set.