“Python/docs/3.9/c-api/descriptor”的版本间差异

来自菜鸟教程
Python/docs/3.9/c-api/descriptor
跳转至:导航、​搜索
(autoload)
 
(Page commit)
 
第1行: 第1行:
 +
{{DISPLAYTITLE:描述符对象 — Python 文档}}
 
<div id="descriptor-objects" class="section">
 
<div id="descriptor-objects" class="section">
  
 
<span id="id1"></span>
 
<span id="id1"></span>
= Descriptor Objects =
+
= 描述符对象 =
  
&quot;Descriptors&quot; are objects that describe some attribute of an object. They are
+
“描述符”是描述对象某些属性的对象。 它们可以在类型对象的字典中找到。
found in the dictionary of type objects.
 
  
; [[../type#c|PyTypeObject]] <code>PyProperty_Type</code>
+
; [[../type#c|<span class="n"><span class="pre">PyTypeObject</span></span>]]<span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">PyProperty_Type</span></span></span><br />
: The type object for the built-in descriptor types.
 
  
; [[../structures#c|PyObject]] *<code>PyDescr_NewGetSet</code><span class="sig-paren">(</span>[[../type#c|PyTypeObject]] *''type'', ''struct'' [[../structures#c|PyGetSetDef]] *''getset''<span class="sig-paren">)</span>
+
: 内置描述符类型的类型对象。
: ''Return value: New reference.''
 
  
; [[../structures#c|PyObject]] *<code>PyDescr_NewMember</code><span class="sig-paren">(</span>[[../type#c|PyTypeObject]] *''type'', ''struct'' [[../structures#c|PyMemberDef]] *''meth''<span class="sig-paren">)</span>
+
; [[../structures#c|<span class="n"><span class="pre">PyObject</span></span>]]<span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="sig-name descname"><span class="n"><span class="pre">PyDescr_NewGetSet</span></span></span><span class="sig-paren">(</span>[[../type#c|<span class="n"><span class="pre">PyTypeObject</span></span>]]<span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n"><span class="pre">type</span></span>, <span class="k"><span class="pre">struct</span></span><span class="w"> </span>[[../structures#c|<span class="n"><span class="pre">PyGetSetDef</span></span>]]<span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n"><span class="pre">getset</span></span><span class="sig-paren">)</span><br />
: ''Return value: New reference.''
 
  
; [[../structures#c|PyObject]] *<code>PyDescr_NewMethod</code><span class="sig-paren">(</span>[[../type#c|PyTypeObject]] *''type'', ''struct'' [[../structures#c|PyMethodDef]] *''meth''<span class="sig-paren">)</span>
+
:  
: ''Return value: New reference.''
 
  
; [[../structures#c|PyObject]] *<code>PyDescr_NewWrapper</code><span class="sig-paren">(</span>[[../type#c|PyTypeObject]] *''type'', ''struct'' wrapperbase *''wrapper'', void *''wrapped''<span class="sig-paren">)</span>
+
; [[../structures#c|<span class="n"><span class="pre">PyObject</span></span>]]<span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="sig-name descname"><span class="n"><span class="pre">PyDescr_NewMember</span></span></span><span class="sig-paren">(</span>[[../type#c|<span class="n"><span class="pre">PyTypeObject</span></span>]]<span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n"><span class="pre">type</span></span>, <span class="k"><span class="pre">struct</span></span><span class="w"> </span>[[../structures#c|<span class="n"><span class="pre">PyMemberDef</span></span>]]<span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n"><span class="pre">meth</span></span><span class="sig-paren">)</span><br />
: ''Return value: New reference.''
 
  
; [[../structures#c|PyObject]] *<code>PyDescr_NewClassMethod</code><span class="sig-paren">(</span>[[../type#c|PyTypeObject]] *''type'', [[../structures#c|PyMethodDef]] *''method''<span class="sig-paren">)</span>
+
:  
: ''Return value: New reference.''
 
  
; int <code>PyDescr_IsData</code><span class="sig-paren">(</span>[[../structures#c|PyObject]] *''descr''<span class="sig-paren">)</span>
+
; [[../structures#c|<span class="n"><span class="pre">PyObject</span></span>]]<span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="sig-name descname"><span class="n"><span class="pre">PyDescr_NewMethod</span></span></span><span class="sig-paren">(</span>[[../type#c|<span class="n"><span class="pre">PyTypeObject</span></span>]]<span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n"><span class="pre">type</span></span>, <span class="k"><span class="pre">struct</span></span><span class="w"> </span>[[../structures#c|<span class="n"><span class="pre">PyMethodDef</span></span>]]<span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n"><span class="pre">meth</span></span><span class="sig-paren">)</span><br />
: Return true if the descriptor objects ''descr'' describes a data attribute, or false if it describes a method. ''descr'' must be a descriptor object; there is no error checking.
+
 
 +
:
 +
 
 +
; [[../structures#c|<span class="n"><span class="pre">PyObject</span></span>]]<span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="sig-name descname"><span class="n"><span class="pre">PyDescr_NewWrapper</span></span></span><span class="sig-paren">(</span>[[../type#c|<span class="n"><span class="pre">PyTypeObject</span></span>]]<span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n"><span class="pre">type</span></span>, <span class="k"><span class="pre">struct</span></span><span class="w"> </span><span class="n"><span class="pre">wrapperbase</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n"><span class="pre">wrapper</span></span>, <span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n"><span class="pre">wrapped</span></span><span class="sig-paren">)</span><br />
 +
 
 +
:
 +
 
 +
; [[../structures#c|<span class="n"><span class="pre">PyObject</span></span>]]<span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="sig-name descname"><span class="n"><span class="pre">PyDescr_NewClassMethod</span></span></span><span class="sig-paren">(</span>[[../type#c|<span class="n"><span class="pre">PyTypeObject</span></span>]]<span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n"><span class="pre">type</span></span>, [[../structures#c|<span class="n"><span class="pre">PyMethodDef</span></span>]]<span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n"><span class="pre">method</span></span><span class="sig-paren">)</span><br />
 +
 
 +
:
 +
 
 +
; <span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">PyDescr_IsData</span></span></span><span class="sig-paren">(</span>[[../structures#c|<span class="n"><span class="pre">PyObject</span></span>]]<span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n"><span class="pre">descr</span></span><span class="sig-paren">)</span><br />
 +
 
 +
: 如果描述符对象 ''descr'' 描述数据属性,则返回 true,如果描述方法,则返回 false。 ''descr'' 必须是描述符对象; 没有错误检查。
 +
 
 +
; [[../structures#c|<span class="n"><span class="pre">PyObject</span></span>]]<span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="sig-name descname"><span class="n"><span class="pre">PyWrapper_New</span></span></span><span class="sig-paren">(</span>[[../structures#c|<span class="n"><span class="pre">PyObject</span></span>]]<span class="p"><span class="pre">*</span></span>, [[../structures#c|<span class="n"><span class="pre">PyObject</span></span>]]<span class="p"><span class="pre">*</span></span><span class="sig-paren">)</span><br />
 +
 
 +
:
 +
 
 +
 
 +
</div>
 +
<div class="clearer">
  
; [[../structures#c|PyObject]] *<code>PyWrapper_New</code><span class="sig-paren">(</span>[[../structures#c|PyObject]]*, [[../structures#c|PyObject]]*<span class="sig-paren">)</span>
 
: ''Return value: New reference.''
 
  
  
 
</div>
 
</div>
  
[[Category:Python 3.9 中文文档]]
+
[[Category:Python 3.9 文档]]

2021年10月31日 (日) 04:50的最新版本

描述符对象

“描述符”是描述对象某些属性的对象。 它们可以在类型对象的字典中找到。

PyTypeObject PyProperty_Type
内置描述符类型的类型对象。
PyObject *PyDescr_NewGetSet(PyTypeObject *type, struct PyGetSetDef *getset)
PyObject *PyDescr_NewMember(PyTypeObject *type, struct PyMemberDef *meth)
PyObject *PyDescr_NewMethod(PyTypeObject *type, struct PyMethodDef *meth)
PyObject *PyDescr_NewWrapper(PyTypeObject *type, struct wrapperbase *wrapper, void *wrapped)
PyObject *PyDescr_NewClassMethod(PyTypeObject *type, PyMethodDef *method)
int PyDescr_IsData(PyObject *descr)
如果描述符对象 descr 描述数据属性,则返回 true,如果描述方法,则返回 false。 descr 必须是描述符对象; 没有错误检查。
PyObject *PyWrapper_New(PyObject*, PyObject*)