[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