[Python-checkins] r73943 - in python/branches/py3k/Doc: c-api/structures.rst extending/extending.rst

georg.brandl python-checkins at python.org
Sat Jul 11 12:43:09 CEST 2009


Author: georg.brandl
Date: Sat Jul 11 12:43:08 2009
New Revision: 73943

Log:
#6421: The self argument of module-level PyCFunctions is now a reference to the module object.

Modified:
   python/branches/py3k/Doc/c-api/structures.rst
   python/branches/py3k/Doc/extending/extending.rst

Modified: python/branches/py3k/Doc/c-api/structures.rst
==============================================================================
--- python/branches/py3k/Doc/c-api/structures.rst	(original)
+++ python/branches/py3k/Doc/c-api/structures.rst	Sat Jul 11 12:43:08 2009
@@ -146,12 +146,10 @@
 
    This is the typical calling convention, where the methods have the type
    :ctype:`PyCFunction`. The function expects two :ctype:`PyObject\*` values.
-   The first one is the *self* object for methods; for module functions, it
-   has the value given to :cfunc:`Py_InitModule4` (or *NULL* if
-   :cfunc:`Py_InitModule` was used).  The second parameter (often called
-   *args*) is a tuple object representing all arguments. This parameter is
-   typically processed using :cfunc:`PyArg_ParseTuple` or
-   :cfunc:`PyArg_UnpackTuple`.
+   The first one is the *self* object for methods; for module functions, it is
+   the module object.  The second parameter (often called *args*) is a tuple
+   object representing all arguments. This parameter is typically processed
+   using :cfunc:`PyArg_ParseTuple` or :cfunc:`PyArg_UnpackTuple`.
 
 
 .. data:: METH_KEYWORDS
@@ -167,9 +165,9 @@
 
    Methods without parameters don't need to check whether arguments are given if
    they are listed with the :const:`METH_NOARGS` flag.  They need to be of type
-   :ctype:`PyCFunction`.  When used with object methods, the first parameter is
-   typically named ``self`` and will hold a reference to the object instance.
-   In all cases the second parameter will be *NULL*.
+   :ctype:`PyCFunction`.  The first parameter is typically named *self* and will
+   hold a reference to the module or object instance.  In all cases the second
+   parameter will be *NULL*.
 
 
 .. data:: METH_O

Modified: python/branches/py3k/Doc/extending/extending.rst
==============================================================================
--- python/branches/py3k/Doc/extending/extending.rst	(original)
+++ python/branches/py3k/Doc/extending/extending.rst	Sat Jul 11 12:43:08 2009
@@ -82,10 +82,8 @@
 function.  The C function always has two arguments, conventionally named *self*
 and *args*.
 
-The *self* argument is only used when the C function implements a built-in
-method, not a function. In the example, *self* will always be a *NULL* pointer,
-since we are defining a function, not a method.  (This is done so that the
-interpreter doesn't have to understand two different types of C functions.)
+The *self* argument points to the module object for module-level functions;
+for a method it would point to the object instance.
 
 The *args* argument will be a pointer to a Python tuple object containing the
 arguments.  Each item of the tuple corresponds to an argument in the call's


More information about the Python-checkins mailing list