Hi all, I want to use an InteractiveConsole at some stage in a program to interact with the local namespace: access, but also modify objects. When the interactive console ends (ctrl-d) I want the program to continue processing with the variables that may have been modified interactively.
The code below works (block invoking the console is not in a function). During the interactive session, I can read value of a, I can change value of a and the new value is "updated" in the block namespace. import code if __name__ == '__main__': a=1 c = code.InteractiveConsole(locals()) c.interact() # Here I interactively change the value of a (a=2) print "Value of a: ", a print returns --> Value of a: 2 However, on the other code below (the console is invoked from within a function block), during the interactive session, I can read value of a, I can change value of a. But the local namespace of the function is not updated: import code def test(): a=1 c = code.InteractiveConsole(locals()) c.interact() # Here I interactively change the value of a (a=2) print "Value of a: ", a if __name__ == '__main__': test() print returns --> Value of a: 1 I need to run the InteractiveConsole from a function block. I tried different things with the local and parent frames (sys._getframe()) but nothing successful. If I put a in the global namespace it works, but I would like to find a nicer solution and also understand what the problem is. Thanks for any help -- David ROBERT http://blog.ombrepixel.com/ -- http://mail.python.org/mailman/listinfo/python-list