@@ -208,7 +208,7 @@ a special case, for which the new value passed to the handler is ``NULL``.
208208Python supports two pairs of attribute handlers; a type that supports attributes
209209only needs to implement the functions for one pair. The difference is that one
210210pair takes the name of the attribute as a :c:expr: `char\* `, while the other
211- accepts a :c:type : `PyObject\ * `. Each type can use whichever pair makes more
211+ accepts a :c:expr : `PyObject* `. Each type can use whichever pair makes more
212212sense for the implementation's convenience. ::
213213
214214 getattrfunc tp_getattr; /* char * version */
@@ -219,7 +219,7 @@ sense for the implementation's convenience. ::
219219
220220If accessing attributes of an object is always a simple operation (this will be
221221explained shortly), there are generic implementations which can be used to
222- provide the :c:type : `PyObject\ * ` version of the attribute management functions.
222+ provide the :c:expr : `PyObject* ` version of the attribute management functions.
223223The actual need for type-specific attribute handlers almost completely
224224disappeared starting with Python 2.2, though there are many examples which have
225225not been updated to use some of the new generic mechanism that is available.
@@ -341,7 +341,7 @@ Type-specific Attribute Management
341341
342342For simplicity, only the :c:expr: `char\* ` version will be demonstrated here; the
343343type of the name parameter is the only difference between the :c:expr: `char\* `
344- and :c:type : `PyObject\ * ` flavors of the interface. This example effectively does
344+ and :c:expr : `PyObject* ` flavors of the interface. This example effectively does
345345the same thing as the generic example above, but does not use the generic
346346support added in Python 2.2. It explains how the handler functions are
347347called, so that if you do need to extend their functionality, you'll understand
0 commit comments