]> granicus.if.org Git - python/commitdiff
Change example of retrieving & calling a Python function to not use
authorFred Drake <fdrake@acm.org>
Fri, 12 Apr 2002 19:04:17 +0000 (19:04 +0000)
committerFred Drake <fdrake@acm.org>
Fri, 12 Apr 2002 19:04:17 +0000 (19:04 +0000)
PyModule_GetDict(), which is also more flexible: it does not assume that the
"module" is a real module.

Doc/ext/embedding.tex

index a44b89c9974c947426ef4c38a446e12b0e597bf3..77fd4514cba2817a741bfe93605f8844b430d9e3 100644 (file)
@@ -178,24 +178,21 @@ as its argument, which is constructed using the
 \cfunction{PyString_FromString()} data conversion routine.
 
 \begin{verbatim}
-    pDict = PyModule_GetDict(pModule);
-    /* pDict is a borrowed reference */
-
-    pFunc = PyDict_GetItemString(pDict, argv[2]);
-    /* pFun is a borrowed reference */
+    pFunc = PyObject_GetAttrString(pModule, argv[2]);
+    /* pFunc is a new reference */
 
     if (pFunc && PyCallable_Check(pFunc)) {
         ...
     }
+    Py_XDECREF(pFunc);
 \end{verbatim}
 
-Once the script is loaded, its dictionary is retrieved with
-\cfunction{PyModule_GetDict()}.  The dictionary is then searched using
-the normal dictionary access routines for the function name.  If the
-name exists, and the object retunred is callable, you can safely
-assume that it is a function.  The program then proceeds by
-constructing a tuple of arguments as normal.  The call to the python
-function is then made with:
+Once the script is loaded, the name we're looking for is retrieved
+using \cfunction{PyObject_GetAttrString()}.  If the name exists, and
+the object retunred is callable, you can safely assume that it is a
+function.  The program then proceeds by constructing a tuple of
+arguments as normal.  The call to the Python function is then made
+with:
 
 \begin{verbatim}
     pValue = PyObject_CallObject(pFunc, pArgs);