[Python-ideas] Class autoload
Steven D'Aprano
steve at pearwood.info
Sat Mar 3 19:16:52 EST 2018
On Sat, Mar 03, 2018 at 02:33:36PM -0500, Terry Reedy wrote:
> def autoload(mod, cls, *args, **kwargs):
> from mod import cls
> return cls(*args, **kwargs)
>
> obj = autoload(yourmodule, YourClass)
That won't work unless yourmodule and YourClass have already been
imported, since you'll get NameError.
You need to pass the names as strings, something like:
# also untested
def autoload(mod, cls, *args, **kwargs):
module = __import__(mod) # or use importlib
K = getattr(module, cls)
return K(*args, **kwargs)
obj = autoload('yourmodule', 'YourClass')
--
Steve
More information about the Python-ideas
mailing list