Le seguenti funzioni emulano quello che era la definizione standard di importazione fino a Python 1.4 (senza nomi di moduli gerarchici). (Questa implementazione non potrà lavorare in quella versione, in quanto find_module() è stato esteso e load_module() è stato aggiunto nella 1.4.)
import imp import sys def __import__(name, globals=None, locals=None, fromlist=None): # Percorso veloce: controlla se il modulo è già stato importato. try: return sys.modules[name] except KeyError: pass # se una delle seguenti chiamate solleva un'eccezione, # c'è un problema che non possiamo gestire -- lo gestirà il chiamante. fp, pathname, description = imp.find_module(name) try: return imp.load_module(name, fp, pathname, description) finally: # Siccome possiamo uscire tramite #+ un'eccezione, chiudete fp esplicitamente. if fp: fp.close()
Un esempio più completo che implementa gerarchicamente i nomi del modulo e include una funzione reload()può venire trovato nel modulo knee. Il modulo knee può venire trovato in Demo/imputil/ nei sorgenti della distribuzione Python.
Vedete Circa questo documento... per informazioni su modifiche e suggerimenti.