Best way to handle changing list of class imports

Diez B. Roggisch deets at nospam.web.de
Sat Oct 10 20:42:18 CEST 2009


Scott Grant schrieb:
> Hi there,
> 
> I'd like to set up a framework in which I can add or remove new
> classes of a given expected subclass to my package, and have the
> system load that set at runtime and be able to use them.  In essence,
> if I have a class X, and subclasses A, B, and C that derive from X,
> what's the most pythonic way to allow me to add or remove A, B, or C
> from the package before runtime, to iterate over all known imported
> classes that inherit from X, while minimizing the modifications to my
> existing program.
> 
> Is the best way to set up a directory in my package for these classes,
> and to define the list of active imports in the __all__ list in
> __init__.py?  Or is there a better way?
> 
> For detail, I'm writing a system that students will be able to submit
> game strategies that will compete against each other in a framework
> that passes them game state and expects moves in return.  It would be
> great to be able to add or remove these player strategies as new ones
> come in, but I don't want to add a bunch of overhead importing each
> one specifically in the game manager itself.

I think you re-think your approach and kind of invert it. Instead of 
viewing your system as game-strategies plugged into the framework, make 
a game-strategy *use* your framework.

Thus what your students deliver must be an executable script that sets 
up the game, and then passes the own strategy into it.

Diez



More information about the Python-list mailing list