Sono un novizio pitone e sto avendo difficoltà a comprendere l'istruzione import e le sue varianti.semantica di importazione python semantica
Supponiamo che io stia usando il modulo lxml per raschiare i siti web.
Gli esempi mostrano,
from lxml.html import parse
parse('http://somesite')
guida di stile pitone di Google preferisce la dichiarazione di importazione di base, per preservare gli spazi dei nomi. Preferirei farlo, ma quando provo:
import lxml
lxml.html.parse('http://somesite')
ottengo il seguente messaggio di errore:
AttributeError: 'module' object has no attribute 'html'
Qualcuno può aiutarmi a capire cosa sta succedendo? Preferisco di gran lunga usare i moduli w/nei loro spazi dei nomi, ma ho bisogno di assistenza per capire la semantica.
Molto apprezzato.
Ma spiegate perché funziona. –
Dovrei pensare a lxml come pacchetto, quindi? C'è un modo coerente per capire quali moduli vengono caricati automaticamente nel mio programma? –
@TravisLelue: In Python una directory che contiene un '__init __. Py' è un pacchetto. Pertanto, 'lxml' è un pacchetto. Un modulo è qualsiasi file '.py' all'interno di un pacchetto. La mia modifica (si spera) spiega come puoi scoprire quali moduli vengono automaticamente importati nello spazio dei nomi di un pacchetto. – unutbu