How to reload local namespace definitions in the python interpreter?
Steve Holden
steve at holdenweb.com
Mon Apr 4 11:10:21 EDT 2005
Tim Jarman wrote:
> test1dellboy3 at yahoo.co.uk wrote:
>
>
>>Hi,
>>
>>I am a beginner using the python interpreter. To reduce typing effort,
>>I created a module called "aliases.py" containing some aliases for
>>objects I commonly use like -
>>
>>aliases.py :
>>
>>
>>import filecmp, os, commands
>>
>>op = os.path
>>go = commands.getoutput
>>dc = filecmp.dircmp
>>p1 = '/mnt/usbkey/flash/'
>>p2 = '/mnt/fat32/myfiles/flash/'
>>
>>When I start up the interpreter, I can simply type -
>>
>>from aliases import *
>>
>>This works fine, but each time I change any of the definitions in
>>aliases.py, I
>>have to restart the interpreter and type "from aliases import *"
>>again. Is there any way to reload these definitions without restarting
>>the interpreter?
>>
>>-Slath
>
>
> reload(aliases)
>
Unfortunately a simple reload of the module won't result in the required
changes to the local namespace:
$ cat test87.py
val = 33
>>> from test87 import *
>>> print val
33
>>> val = 42
>>> reload(test87)
<module 'test87' from 'test87.pyc'>
>>> print val
42
>>>
> See: http://www.python.org/doc/2.4.1/lib/built-in-funcs.html
>
> By the way, are you aware of the import ... as ... idiom?
> e.g. import os.path as op
>
This would, of course, require the user to qualify the names by
prefixing them with "op.".
regards
Steve
--
Steve Holden +1 703 861 4237 +1 800 494 3119
Holden Web LLC http://www.holdenweb.com/
Python Web Programming http://pydish.holdenweb.com/
More information about the Python-list
mailing list