dir() vs print(dir()) in the embedded mode

Nick Gnedin ngnedin at gmail.com
Fri Mar 29 22:04:24 CET 2013


Folks,

I have a newbie question: I am trying to embed Python into my 
application. While playing around, I noticed that the behavior of the 
interpreter in the embedded mode differs from the standalone one.

Namely, in the standalone mode if I type dir(), I get a list of build-in 
symbols. In the embedded mode only print(dir()) does that, while just 
dir() returns silently.

Is there a way to intercept the output of dir() (and all other commands) 
and display them to the user?

Here is an example code that illustrates the behavior (the first call to 
PyRun_SimpleString() returns silently).

Many thanks for your future hints,

Nick


#include <Python.h>

int main()
{
   Py_Initialize();
   PyRun_SimpleString("dir()");
   printf("-----\n");
   PyRun_SimpleString("print(dir())");
   Py_Finalize();

   return 0;
}



More information about the Python-list mailing list