[Python] Istanziare oggetti dinamicamente

Marco Mariani marco a sferacarta.com
Mar 17 Apr 2007 10:07:21 CEST


Sbaush wrote:
> Intanto grazie mille per le prontissime risposte alla mia richiesta...
> Le vostre soluzioni funzionano entrambe se provate in terminale.
> Non riesco però ad applicarle al mio preciso ambito, per questo entro
> con voi nel merito della questione più in profondo.
>
> Ho una directory con dei plugins, che vorrei riuscire a caricare
> dinamicamente.

> __import__(PF.pluginName, globals(), locals(), []) 

Fuochino...

> def load_class(dottedpath):
>     '''
>     Loads a class from a module in dotted-path notation.
>     Eg: load_class("package.module.class").
>
>     Based on recipe 16.3 from "Python Cookbook, 2ed., by Alex Martelli,
>     Anna Martelli Ravenscroft, and David Ascher (O'Reilly Media, 2005)
>     0-596-00797-3"
>     '''
>     splitted_path = dottedpath.split('.')
>     modulename = '.'.join(splitted_path[:-1])
>     classname = splitted_path[-1]
>     try:
>         module = __import__(modulename, globals(), locals(), [classname])
>     except ImportError:
>         return None
>     return getattr(module, classname)


cls = load_class('miaroba.modulo.classe')

istanza = cls(*args)



Maggiori informazioni sulla lista Python