@@ -208,7 +208,7 @@ a special case, for which the new value passed to the handler is ``NULL``.
208
208
Python supports two pairs of attribute handlers; a type that supports attributes
209
209
only needs to implement the functions for one pair. The difference is that one
210
210
pair 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
212
212
sense for the implementation's convenience. ::
213
213
214
214
getattrfunc tp_getattr; /* char * version */
@@ -219,7 +219,7 @@ sense for the implementation's convenience. ::
219
219
220
220
If accessing attributes of an object is always a simple operation (this will be
221
221
explained 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.
223
223
The actual need for type-specific attribute handlers almost completely
224
224
disappeared starting with Python 2.2, though there are many examples which have
225
225
not been updated to use some of the new generic mechanism that is available.
@@ -341,7 +341,7 @@ Type-specific Attribute Management
341
341
342
342
For simplicity, only the :c:expr: `char\* ` version will be demonstrated here; the
343
343
type 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
345
345
the same thing as the generic example above, but does not use the generic
346
346
support added in Python 2.2. It explains how the handler functions are
347
347
called, so that if you do need to extend their functionality, you'll understand
0 commit comments