[Tutor] Importing classes when needed
Peter Otten
__peter__ at web.de
Mon May 30 09:45:33 CEST 2011
Timo wrote:
> Hello all,
>
> I have a question about how this is done the best way.
>
> In my project I have a folder with multiple file parsers, like this:
> - src
> -- main.py
> -- parsers
> --- __init__.py
> --- parser1.py
> --- parser2.py
>
> The parsers just contain a class which do the work.
>
> When the user clicks a button, I want to show all available parsers and
> use the choosen one when the user clicks "ok".
> Is it ok to place the following code in the __init__.py?
> from parser1 import Parser1
> from parser2 import Parser2
> def get_parsers():
> return [Parser1(), Parser2()]
>
> If so, is it ok to do a get_parsers() everytime the user clicks a
> button? Because that will initialize the parsers over and over again,
> right?
If you only need lazy instantiation, not lazy import, one solution is
from parser1 import Parser1
from parser2 import Parser2
_parsers = None
def get_parsers():
global _parsers
if _parsers is None:
_parsers = [Parser1(), Parser2()]
return _parsers
More information about the Tutor
mailing list