Ho solo "pensato" Ho capito come funzionano i moduli e l'importazione, ma ovviamente ho bisogno di più istruzione.Come funziona l'importazione. Perché i moduli importati non ereditano altri moduli importati
Ecco un esempio di programma (solo un caso di test di somerthing sto facendo che è molto più grande nella portata e le dimensioni) e un modulo:
quick.py
import gtk
from quick_window import *
w.show_all()
gtk.main()
quick_window.py
w = gtk.Window()
w.connect('destroy', lambda w: gtk.main_quit())
l=gtk.Label('Hello')
w.add(l)
esecuzione ottengo
$ python quick.py
Traceback (most recent call last):
File "quick.py", line 2, in <module>
from quick_window import *
File "/home/woodnt/Dropbox/python/weather_project/plugins/quick_window.py", line 3, in <module>
w = gtk.Window()
NameError: name 'gtk' is not defined
Per farlo funzionare, devo importare anche (er, reimportare) gtk nel modulo in questo modo:
import gtk
w = gtk.Window()
w.connect('destroy', lambda w: gtk.main_quit())
l=gtk.Label('Hello')
w.add(l)
Perché dovrei avere importare gtk più di una volta? Significa che ho 2 "gtk" in memoria?
Devo importare tutto all'interno di ciascun modulo di cui ho bisogno all'interno di quel modulo?
So che ogni modulo ha il proprio spazio dei nomi, ma ho pensato che ereditasse anche i "globali" incluso il modulo importato dal programma chiamante.
Ho avuto l'impressione che l'importazione del modulo * sia come tagliare e incollare il codice direttamente in quella posizione. C'è un altro modo per farlo?
L'aiuto è molto apprezzato.
Narnie
Per lo meno perché non si suppone di scrivere moduli supponendo che il modulo di importazione abbia importato anche un modulo specifico. – delnan