5

I am running my code using an IPython Console. I have a main() function that is executed as follows:

if __name__ == "__main__":  
    main()

Then main() calls a bunch of other functions and I don't use any classes. My question is, can I print or manipulate my variables interactively in the console after running my program?

Like if I don't have main() or any other functions, for example I can declare in my code:

a=1

And then it is easy to access from the console:

In [20]: a

Out[20]: 1

Thank you in advance if you can help with this noob question.

Bas Swinckels
  • 18,095
  • 3
  • 45
  • 62
user158037
  • 51
  • 2

1 Answers1

3

Have main return locals().

def main():
    # ...
    return locals()

if __name__ == "__main__":
    locals().update(main())

See also Making function variables from imported module available in iPython interactive namespace and Dump function variables to workspace in python/ipython

Community
  • 1
  • 1
keflavich
  • 18,278
  • 20
  • 86
  • 118