On Wed, 16 Jan 2008 15:31:54 -0800, Tobiah wrote: >> Again, those aren't copies. There is only one instance of each value, >> referenced by multiple names. > > > Ok, I get it. I was locally importing a pointer to an integer
Really? What language were you using? Python doesn't have pointers. Some *implementations* of Python (e.g. CPython) might have pointers *in the implementation*, but others (e.g. PyPy, Jython) don't. > which is > really the same object as the module name points to, but the assignment > changes that. The confusion for me centered around the fact that a local > name can be used to change values in mutables that are visible from > within the module. This however, does not include assignment to the > local name. If you haven't already done so, you should read: http://effbot.org/zone/python-objects.htm http://effbot.org/zone/call-by-object.htm and remember that imports are (more or less) equivalent to assignments. When you do this: >>> import module it is roughly equivalent to: >>> module = get_a_module_from_file_name('module') Alternatively: >>> from module import foo is roughly equivalent to: >>> temp = get_a_module_from_file_name('module') >>> foo = temp.foo >>> del temp (and the magic function "get_a_module_from_file_name" is actually called __import__ with double underscores.) -- Steven -- http://mail.python.org/mailman/listinfo/python-list