Le Jeudi 08 Juin 2006 22:02, abcd a écrit : > > def foo(): > import bar > bar.printStuff() > > foo() > foo() > foo() > foo() > > ...will that re-import bar 4 times...or just import it once? is this a > big performance hit?
Import a module more than once doesn't execute the code of this module more than once. I don't know what's your need but as some have spoke of reload I just want to warn you, reload a module means that you want invalidate the code of this and replace it by a new one, this is not like a normal but deeper import. Also, you'll have to deal yourself wiith references to your old code. Hmmm, the following example should be clear than my explanations :) n [1]: import temp In [2]: class a(temp.Base temp.Base In [2]: class a(temp.Base temp.Base In [2]: class a(temp.Base temp.Base In [2]: class a(temp.Base) : pass ...: In [3]: reload(temp) Out[3]: <module 'temp' from 'temp.pyc'> In [4]: class b(temp.Base) : pass ...: In [7]: b.__base__, a.__base__, b.__base__ is a.__base__ Out[7]: (<class 'temp.Base'>, <class 'temp.Base'>, False) In [8]: isinstance(a(), temp.Base), isinstance(b(), temp.Base) Out[8]: (False, True) -- _____________ Maric Michaud _____________ Aristote - www.aristote.info 3 place des tapis 69004 Lyon Tel: +33 426 880 097 -- http://mail.python.org/mailman/listinfo/python-list