On 3/3/2018 2:33 PM, Terry Reedy wrote:
On 3/3/2018 12:12 PM, Jamesie Pic wrote:

Hello everybody,

I thought perhaps we could allow the usage of a "new" keyword to instanciate an object, ie:

    obj = new yourmodule.YourClass()

In this case, it would behave the same as from yourmodule import YourClass; obj = YourClass(), except that it wouldn't need to be imported. This would also eliminate the need to manage an import list at the beginning of a script in most case.

If you really want this (untested):

def autoload(mod, cls, *args, **kwargs):
     from mod import cls

The make the above work with variables:

import importlib  # put at top of file
mod = importlib.import_module(mod)
cls = mod.getattr(cls)

     return cls(*args, **kwargs)

obj = autoload(yourmodule, YourClass)



--
Terry Jan Reedy


_______________________________________________
Python-ideas mailing list
Python-ideas@python.org
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to