Comparing PythonWin and IDLE?

Michael Scharf Michael.Scharf at gmx.de
Fri Apr 14 15:43:33 EDT 2000


Charlie Derr wrote:
> 
>         instead of:
> 
> import myModule
> 
>         try this:
> 
> reload(myModule)
> 
>         and you should be able to get your recently modified changes to take effect
> without restarting python

Well, not quite:

if you wrire (in another module)

  from myModule import MyFunction,MyClass
  ...
  MyFunction()
  my_callback=MyFunction
  my_instance=MyClass()

reload will *not* change the function nor the myinstance.
If you would write:

  import myModule
  ...
  myModule.MyFunction()
  my_callback=myModule.MyFunction
  my_instance=myModule.MyClass()

the new version of MyFunction an MyClass will be called, but
existing instances of MyClass will not be changed to the new version.
Also the old version of my_callback would be called.

I know it is possible to change the code of existing functions.
So, with some ticks it should be possible to replace the code
of existing functions. The same must be done for all mutable objects
(list, dicts etc.). Only not mutable direct imported variable (int,
string, tuple etc.) cannot be changed that way.

I just wonder if anybody has written such a clever reimport...

Michael
-- 
     ''''\     Michael Scharf
    ` c-@@     TakeFive Software GmbH, a Wind River Company
    `    >     http://www.WindRiver.com
     \_ V      mailto:Michael.Scharf at gmx.de



More information about the Python-list mailing list