dir() vs print(dir()) in the embedded mode
rustompmody at gmail.com
Sat Mar 30 06:52:28 CET 2013
On Mar 30, 2:04 am, Nick Gnedin <ngne... at gmail.com> wrote:
> 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 (or can be conceptualized as providing) the interactive interpreter
IOW the interactive interpreter (aka REPL) is a packaging of that.
> Is there a way to intercept the output of dir() (and all other commands)
> and display them to the user?
You are looking at it upside down (as MRAB hinted).
You dont want to intercept (aka monkeypatch or subtract) from a
functional ie value-returning dir etc
Instead you want to add (your own custom) REPL behavior.
> Here is an example code that illustrates the behavior (the first call to
> PyRun_SimpleString() returns silently).
> Many thanks for your future hints,
> #include <Python.h>
> int main()
> return 0;
More information about the Python-list