Python interpreter access
 The TPython class allows for access to python objects from CINT. The current
 functionality is only basic: ROOT objects and builtin types can freely cross
 the boundary between the two interpreters, python objects can be instantiated
 and their methods can be called. All other cross-coding is based on strings
 that are run on the python interpreter.
 Examples:
  $ cat MyPyClass.py
  print 'creating class MyPyClass ... '
  class MyPyClass:
     def __init__( self ):
        print 'in MyPyClass.__init__'
     def gime( self, what ):
        return what
  $ root -l
  // Execute a string of python code.
  root [0] TPython::Exec( "print \'Hello World!\'" );
  Hello World!
  // Create a TBrowser on the python side, and transfer it back and forth.
  // Note the required explicit (void*) cast!
  root [1] TBrowser* b = (void*)TPython::Eval( "ROOT.TBrowser()" );
  root [2] TPython::Bind( b, "b" );
  root [3] b == (void*) TPython::Eval( "b" )
  (int)1
  // Builtin variables can cross-over by using implicit casts.
  root [4] int i = TPython::Eval( "1 + 1" );
  root [5] i
  (int)2
  // Load a python module with a class definition, and use it.
  root [6] TPython::LoadMacro( "MyPyClass.py" );
  creating class MyPyClass ...
  root [7] MyPyClass m;
  in MyPyClass.__init__
  root [8] char* s = m.gime( "aap" );
  root [9] s
  (char* 0x41ee7754)"aap"
 It is possible to switch between interpreters by calling "TPython::Prompt()"
 on the CINT side, while returning with ^D (EOF). State is preserved between
 successive switches.
| TPython() | |
| TPython(const TPython&) | |
| virtual | ~TPython() | 
| static Bool_t | Bind(TObject* object, const char* label) | 
| static TClass* | Class() | 
| static const TPyReturn | Eval(const char* expr) | 
| static void | Exec(const char* cmd) | 
| static void | ExecScript(const char* name, int argc = 0, const char** argv = 0) | 
| virtual TClass* | IsA() const | 
| static void | LoadMacro(const char* name) | 
| TPython& | operator=(const TPython&) | 
| static void | Prompt() | 
| virtual void | ShowMembers(TMemberInspector& insp, char* parent) | 
| virtual void | Streamer(TBuffer& b) | 
| void | StreamerNVirtual(TBuffer& b) | 
| static Bool_t | Initialize() | 

Private initialization method: setup the python interpreter and load the ROOT module.
Execute the give python script as if it were a macro (effectively an execfile in __main__), and create CINT equivalents for any newly available python classes.
 Execute a python stand-alone script, with argv CLI arguments.
 example of use:
    const char* argv[] = { "1", "2", "3" };
    TPython::ExecScript( "test.py", sizeof(argv)/sizeof(argv[0]), argv );
Enter an interactive python session (exit with ^D). State is preserved between successive calls.