Free Memory

Patrick Mullen saluk64007 at gmail.com
Sun May 11 00:06:13 EDT 2008


Yeah I don't know much about locals or globals.  I've never used them
before, just know they are there.  But anyway, to illustrate what I meant by
the interesting behavior, here is the output (and sorry for it being so
long):

IDLE 2.6a2
>>> globals()
{'__builtins__': <module '__builtin__' (built-in)>, '__name__': '__main__',
'__doc__': None, '__package__': None}
>>> globals().clear()
>>> globals()
{'__builtins__': {'bytearray': <type 'bytearray'>, 'IndexError': <type
'exceptions.IndexError'>, 'all': <built-in function all>, 'help': Type
help() for interactive help, or help(object) for help about object., 'vars':
<built-in function vars>, 'SyntaxError': <type 'exceptions.SyntaxError'>,
'unicode': <type 'unicode'>, 'UnicodeDecodeError': <type
'exceptions.UnicodeDecodeError'>, 'isinstance': <built-in function
isinstance>, 'copyright': Copyright (c) 2001-2008 Python Software
Foundation.
All Rights Reserved.

Copyright (c) 2000 BeOpen.com.
All Rights Reserved.

Copyright (c) 1995-2001 Corporation for National Research Initiatives.
All Rights Reserved.

Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam.
All Rights Reserved., 'NameError': <type 'exceptions.NameError'>,
'BytesWarning': <type 'exceptions.BytesWarning'>, 'dict': <type 'dict'>,
'input': <built-in function input>, 'oct': <built-in function oct>, 'bin':
<built-in function bin>, 'SystemExit': <type 'exceptions.SystemExit'>,
'StandardError': <type 'exceptions.StandardError'>, 'format': <built-in
function format>, 'repr': <built-in function repr>, 'sorted': <built-in
function sorted>, 'False': False, 'RuntimeWarning': <type
'exceptions.RuntimeWarning'>, 'list': <type 'list'>, 'iter': <built-in
function iter>, 'reload': <built-in function reload>, 'Warning': <type
'exceptions.Warning'>, '__package__': None, 'round': <built-in function
round>, 'dir': <built-in function dir>, 'cmp': <built-in function cmp>,
'set': <type 'set'>, 'bytes': <type 'str'>, 'reduce': <built-in function
reduce>, 'intern': <built-in function intern>, 'issubclass': <built-in
function issubclass>, 'Ellipsis': Ellipsis, 'EOFError': <type
'exceptions.EOFError'>, 'locals': <built-in function locals>, 'slice': <type
'slice'>, 'FloatingPointError': <type 'exceptions.FloatingPointError'>,
'sum': <built-in function sum>, 'getattr': <built-in function getattr>,
'abs': <built-in function abs>, 'exit': Use exit() or Ctrl-Z plus Return to
exit, 'print': <built-in function print>, 'True': True, 'FutureWarning':
<type 'exceptions.FutureWarning'>, 'ImportWarning': <type
'exceptions.ImportWarning'>, 'None': None, 'hash': <built-in function hash>,
'len': <built-in function len>, 'credits':     Thanks to CWI, CNRI,
BeOpen.com, Zope Corporation and a cast of thousands
    for supporting Python development.  See www.python.org for more
information., 'frozenset': <type 'frozenset'>, '__name__': '__builtin__',
'ord': <built-in function ord>, 'super': <type 'super'>, '_': None,
'TypeError': <type 'exceptions.TypeError'>, 'license': Type license() to see
the full license text, 'KeyboardInterrupt': <type
'exceptions.KeyboardInterrupt'>, 'UserWarning': <type
'exceptions.UserWarning'>, 'filter': <built-in function filter>, 'range':
<built-in function range>, 'staticmethod': <type 'staticmethod'>,
'SystemError': <type 'exceptions.SystemError'>, 'BaseException': <type
'exceptions.BaseException'>, 'pow': <built-in function pow>, 'RuntimeError':
<type 'exceptions.RuntimeError'>, 'float': <type 'float'>, 'MemoryError':
<type 'exceptions.MemoryError'>, 'StopIteration': <type
'exceptions.StopIteration'>, 'globals': <built-in function globals>,
'divmod': <built-in function divmod>, 'enumerate': <type 'enumerate'>,
'apply': <built-in function apply>, 'LookupError': <type
'exceptions.LookupError'>, 'open': <built-in function open>, 'quit': Use
quit() or Ctrl-Z plus Return to exit, 'basestring': <type 'basestring'>,
'UnicodeError': <type 'exceptions.UnicodeError'>, 'zip': <built-in function
zip>, 'hex': <built-in function hex>, 'long': <type 'long'>,
'ReferenceError': <type 'exceptions.ReferenceError'>, 'ImportError': <type
'exceptions.ImportError'>, 'chr': <built-in function chr>, 'xrange': <type
'xrange'>, 'type': <type 'type'>, '__doc__': "Built-in functions,
exceptions, and other objects.\n\nNoteworthy: None is the `nil' object;
Ellipsis represents `...' in slices.", 'Exception': <type
'exceptions.Exception'>, 'tuple': <type 'tuple'>, 'UnicodeTranslateError':
<type 'exceptions.UnicodeTranslateError'>, 'reversed': <type 'reversed'>,
'UnicodeEncodeError': <type 'exceptions.UnicodeEncodeError'>, 'IOError':
<type 'exceptions.IOError'>, 'hasattr': <built-in function hasattr>,
'delattr': <built-in function delattr>, 'setattr': <built-in function
setattr>, 'raw_input': <built-in function raw_input>, 'SyntaxWarning': <type
'exceptions.SyntaxWarning'>, 'compile': <built-in function compile>,
'ArithmeticError': <type 'exceptions.ArithmeticError'>, 'str': <type 'str'>,
'property': <type 'property'>, 'GeneratorExit': <type
'exceptions.GeneratorExit'>, 'int': <type 'int'>, '__import__': <built-in
function __import__>, 'KeyError': <type 'exceptions.KeyError'>, 'coerce':
<built-in function coerce>, 'PendingDeprecationWarning': <type
'exceptions.PendingDeprecationWarning'>, 'file': <type 'file'>,
'EnvironmentError': <type 'exceptions.EnvironmentError'>, 'unichr':
<built-in function unichr>, 'id': <built-in function id>, 'OSError': <type
'exceptions.OSError'>, 'DeprecationWarning': <type
'exceptions.DeprecationWarning'>, 'min': <built-in function min>,
'UnicodeWarning': <type 'exceptions.UnicodeWarning'>, 'execfile': <built-in
function execfile>, 'any': <built-in function any>, 'complex': <type
'complex'>, 'bool': <type 'bool'>, 'ValueError': <type
'exceptions.ValueError'>, 'NotImplemented': NotImplemented, 'map': <built-in
function map>, 'buffer': <type 'buffer'>, 'max': <built-in function max>,
'object': <type 'object'>, 'TabError': <type 'exceptions.TabError'>,
'callable': <built-in function callable>, 'ZeroDivisionError': <type
'exceptions.ZeroDivisionError'>, 'eval': <built-in function eval>,
'__debug__': True, 'IndentationError': <type 'exceptions.IndentationError'>,
'AssertionError': <type 'exceptions.AssertionError'>, 'classmethod': <type
'classmethod'>, 'UnboundLocalError': <type 'exceptions.UnboundLocalError'>,
'NotImplementedError': <type 'exceptions.NotImplementedError'>,
'AttributeError': <type 'exceptions.AttributeError'>, 'OverflowError': <type
'exceptions.OverflowError'>, 'WindowsError': <type
'exceptions.WindowsError'>}}
>>>

The OP wanted to clear the interpreter and I took a very broad (and highly
unresearched) stab at it, and saw some behavior that I wasn't expecting.
So before, all the builtin variables are hidden away in __builtins__, but
after clearing globals, they are filled into globals.  This doesn't really
make sense to me, but I don't know much about __builtins__ or globals.

I just realized this only happens in idle however.  From the python console,
clearing globals REALLY clears globals - even globals() is unbound when you
do that.  So it's not such a good thing to do :)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-list/attachments/20080510/b5b2dd99/attachment.html>


More information about the Python-list mailing list