Daniel Nogradi wrote: > What is the simplest way to instantiate all classes that are > subclasses of a given class in a module? > > More precisely I have a module m with some content: > > # m.py > class A: > pass > class x( A ): > pass > class y( A ): > pass > # all kinds of other objects follow > # end of m.py > > and then in another module I have currently: > > # n.py > import m > x = m.x( ) > y = m.y( ) > # end of n.py > > and would like to automate this in a way that results in having > instances of classes from m in n whose names are the same as the > classes themselves. But I only would like to do this with classes that > are subclasses of A. > > Any ideas?
It's pretty easy import m from inspect import getmembers, isclass, getmro t = '%s = m.%s()' for name, class_ in getmembers(m, isclass): if class_ is m.A: continue if m.A in getmro(class_): exec t % (name, name) Peace, ~Simon -- http://mail.python.org/mailman/listinfo/python-list