@@ -399,16 +399,21 @@ msgid ""
399399" the descriptor from the class object, and get the doc string using its "
400400":attr:`__doc__` attribute."
401401msgstr ""
402+ "使用 :c:member:`~PyTypeObject.tp_members` "
403+ "表来构建用于运行时的描述器还有一个有趣的优点是任何以这种方式定义的属性都可以简单地通过在表中提供文本来设置一个相关联的文档字符串。 "
404+ "一个应用程序可以使用自省 API 从类对象获取描述器,并使用其 :attr:`__doc__` 属性来获取文档字符串。"
402405
403406#: ../../extending/newtypes.rst:309
404407msgid ""
405408"As with the :c:member:`~PyTypeObject.tp_methods` table, a sentinel entry "
406409"with a :attr:`name` value of ``NULL`` is required."
407410msgstr ""
411+ "与 :c:member:`~PyTypeObject.tp_methods` 表一样,需要有一个值为 ``NULL`` 的哨兵条目 "
412+ ":attr:`name`。"
408413
409414#: ../../extending/newtypes.rst:323
410415msgid "Type-specific Attribute Management"
411- msgstr ""
416+ msgstr "类型专属的属性管理 "
412417
413418#: ../../extending/newtypes.rst:325
414419msgid ""
@@ -420,13 +425,18 @@ msgid ""
420425"handler functions are called, so that if you do need to extend their "
421426"functionality, you'll understand what needs to be done."
422427msgstr ""
428+ "为了简单起见,这里只演示 :c:type:`char\\ *` 版本;name 形参的类型是 :c:type:`char\\ *` 和 "
429+ ":c:type:`PyObject\\ *` 风格接口之间的唯一区别。 这个示例实际上做了与上面的泛用示例相同的事情,但没有使用在 Python 2.2 "
430+ "中增加的泛用支持。 它解释了处理句柄函数是如何被调用的,因此如果你确实需要扩展它们的功能,你就会明白有什么是需要做的。"
423431
424432#: ../../extending/newtypes.rst:333
425433msgid ""
426434"The :c:member:`~PyTypeObject.tp_getattr` handler is called when the object "
427435"requires an attribute look-up. It is called in the same situations where "
428436"the :meth:`__getattr__` method of a class would be called."
429437msgstr ""
438+ ":c:member:`~PyTypeObject.tp_getattr` 处理句柄会在对象需要查找属性时被调用。 它被调用的情况与一个类的 "
439+ ":meth:`__getattr__` 方法要被调用的情况相同。"
430440
431441#: ../../extending/newtypes.rst:337
432442msgid "Here is an example::"
@@ -441,10 +451,14 @@ msgid ""
441451" really all you wanted, the :c:member:`~PyTypeObject.tp_setattr` handler "
442452"should be set to ``NULL``. ::"
443453msgstr ""
454+ ":c:member:`~PyTypeObject.tp_setattr` 处理句柄会在要调用一个类实例的 :meth:`__setattr__` 或 "
455+ ":meth:`__delattr__` 方法时被调用。 当一个属性应当被删除时,第三个形参将为 ``NULL``。 "
456+ "下面是一个简单地引发异常的例子;如果这确实是你想要的,则 :c:member:`~PyTypeObject.tp_setattr` 处理句柄应当被设为 "
457+ "``NULL``。 ::"
444458
445459#: ../../extending/newtypes.rst:367
446460msgid "Object Comparison"
447- msgstr ""
461+ msgstr "对象比较 "
448462
449463#: ../../extending/newtypes.rst:373
450464msgid ""
@@ -453,6 +467,9 @@ msgid ""
453467"methods <richcmpfuncs>`, like :meth:`__lt__`, and also called by "
454468":c:func:`PyObject_RichCompare` and :c:func:`PyObject_RichCompareBool`."
455469msgstr ""
470+ ":c:member:`~PyTypeObject.tp_richcompare` 处理句柄会在需要进行比较时被调用。 它类似于 :ref:`富比较方法 "
471+ "<richcmpfuncs>`,例如 :meth:`__lt__`,并会被 :c:func:`PyObject_RichCompare` 和 "
472+ ":c:func:`PyObject_RichCompareBool` 所调用。"
456473
457474#: ../../extending/newtypes.rst:378
458475msgid ""
0 commit comments