Python Forum

Full Version: How is space of variables/functions/objects... called?
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
When you run a Python session, it stores all the variables you declare, and functions, objects... and you can access them at any time. Once you exit this Python session, and run a new one, all that was declared before will be gone.
I would like to know, how is this "session" called? Or is it a workspace? Or maybe scope? I tried to find it out online but honestly, I didn't even know how to search properly =/ Thank you, JC
I guess it would be namespace
Python Docs Wrote:A namespace is a mapping from names to objects. Most namespaces are currently implemented as Python dictionaries, but that’s normally not noticeable in any way (except for performance), and it may change in the future. Examples of namespaces are: the set of built-in names (containing functions such as abs(), and built-in exception names); the global names in a module; and the local names in a function invocation. In a sense the set of attributes of an object also form a namespace. The important thing to know about namespaces is that there is absolutely no relation between names in different namespaces; for instance, two different modules may both define a function maximize without confusion — users of the modules must prefix it with the module name.
Uh, thanks but I'm not sure about this... namespace seems more like, for example, difference between math.sin() and my_module.sin().
Those are examples of namespaces, but what you were asking about is a special namespace as well. Just continue reading:

Quote:Namespaces are created at different moments and have different lifetimes. The namespace containing the built-in names is created when the Python interpreter starts up, and is never deleted. The global namespace for a module is created when the module definition is read in; normally, module namespaces also last until the interpreter quits. The statements executed by the top-level invocation of the interpreter, either read from a script file or interactively, are considered part of a module called __main__, so they have their own global namespace. (The built-in names actually also live in a module; this is called builtins.)
Ah, alright, it seems like this is what I was looking for =) Apologies for the confusion and thanks a lot for clearing it up for me!