S
Scott Grant
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.
Thanks for your time,
Scott
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.
Thanks for your time,
Scott