Impariamo i diversi modi in cui possiamo effettivamente importare questi moduli, fino ad ora abbiamo
imparato solo sull'importazione, ma a volte le cose possono diventare piuttosto frenetiche.
Ad esempio, possiamo effettivamente avere un altro pacchetto all'interno di un altro pacchetto.
Se, ad esempio, creo una nuova cartella qui e dico nuovo pacchetto python, lo chiameremo di più.
Fare clic su Shopping, OK, vedi che ho avviato un altro pacchetto all'interno di un pacchetto che ha il proprio
file.
E spostiamo questo ora per fare spostare il rifrattore e lo sposteremo all'interno della cartella più acquisti, diciamo
di più.
Shopping.
Faccio clic su OK, vedrai che ho spostato questo modulo qui, quindi ho un pacchetto all'interno di un pacchetto.
E il modo in cui potremmo accedere a questo è dire semplicemente fare shopping in più.
Punto della spesa, carrello della spesa.
E copiamolo e facciamo lo stesso qui.
E ora quando clicco su Esegui.
Vedrai che funziona ancora, ma sta diventando un po' troppo folle.
Puoi immaginare che abbiamo sempre più pacchetti che dobbiamo costantemente fare questo punto, questo punto, e questo
sta diventando un po'.
Troppo lungo e brutto.
Quindi come possiamo migliorare questo?
Bene, un modo per farlo in modo più pulito è fare qualcosa del genere invece di
dire import, diciamo da questo.
Parte, voglio importare la funzione, quindi qui sto dicendo, ehi, da pacchetto, nome, pacchetto, nome,
modulo, importazione, qualunque funzione io voglia.
Nel nostro caso, vogliamo importare la funzione di acquisto.
Quindi vedi qui, posso farlo e nel mio codice.
Posso semplicemente eseguire come se fosse parte di questo file principale.
Se eseguo questo.
Vedrai che funziona ancora.
Fantastico, quindi è decisamente più pulito e possiamo farlo anche con l'utilità.
Posso dire dall'importazione di utilità e importare effettivamente i due file o le due funzioni.
Quindi questo è moltiplicare.
E se vogliamo un'altra funzione, possiamo semplicemente aggiungere una virgola e dire dividi.
Quindi ora possiamo stampare Apple.
O da Apple così come dividere.
Diciamo cinque per due.
E possiamo anche moltiplicare.
E assicurati che sia una virgola qui, perché è una funzione come questa, così se lo eseguo, lo
vedrai.
Ci siamo.
Anche questo funziona.
Quindi questo è davvero un bel modo per ripulire il cappotto.
Puoi anche fare qualcosa del genere in cui dici da pacchetto, nome, pacchetto, nome.
E poi importa l'intero modulo, quindi diciamo che voglio importare il modulo del carrello degli acquisti, posso dire importa, quindi
pacchetto pacchetto dot o avresti potuto aver appena fatto un pacchetto e importare il carrello degli acquisti
del modulo effettivo.
Quindi ora vorrei accedervi come questo carrello della spesa.
E anche questo funzionerà.
Ora, il motivo per cui potresti voler fare questo invece di quello che avevamo prima, è che a volte puoi
ottenere collisioni con nome.
Lascia che ti mostri, diciamo che ho avuto una stampa e poi qui usiamo la funzione max, che ci dà che è una
funzione incorporata, gli diamo un iteratore e trova il max per noi in modo che se lo eseguo, tu Vedrai
che il massimo in questa lista è tre.
Bene, immagina nella nostra funzione di utilità, diciamo, invece di dividere, o aggiungiamo un massimo che
dice semplicemente.
Restituzioni e ops.
Bene, se torno al mio DCPI principale.
E.
Ottieni Max come mia funzione e clicco su Esegui.
Beh, vedi, ci arrivo.
Ho capito che Max accetta zero argomenti posizionali, ma è stato dato, ma ne è stato dato uno perché ora Max
non intende quello che pensavamo di voler dire, almeno in questo file abbiamo importato Max e bene.
Max ha una funzione completamente diversa ora, quindi possiamo effettivamente sovrascrivere le funzioni esistenti, quindi utilizzando
qualcosa come questo carrello della spesa, ci assicuriamo di avere solo un caso che potremmo aver chiamato
collisione.
Ma tutte le proprietà o tutti i metodi che ha lo shopping art sono collegati a un carrello della spesa.
Quindi, invece di avere più funzioni che potrebbero essere sovrascritte, ho solo uno spazio dei nomi.
E a proposito, questo è anche uno dei motivi per cui non consiglio di fare qualcosa
del genere, puoi effettivamente importare stelle.
E quello che dice è, ehi, dal modulo di utilità, importa tutto.
E quando lo fai.
Vedrai che ancora una volta otteniamo un'aria perché importa anche il massimo e poiché non sappiamo nemmeno cosa viene
importato in questo momento, non possiamo vederlo.
Dobbiamo andare al file per vederlo.
Quando avremo un'aria come questa, saremo come, cosa sta succedendo?
Ho pensato, Max sta lavorando ed è a causa di questa linea.
Quindi è sempre bene essere espliciti e dire esattamente cosa si desidera importare.
Ma rimuoviamo Max per ora, ma come puoi vedere, i moduli possono essere importanti in diversi modi.
La mia raccomandazione è di essere sempre espliciti e dire esattamente cosa si desidera importare.
E il formato di solito segue usando l'istruzione import seguita dal modulo del pacchetto o importa il modulo, oppure puoi
fare l'istruzione from per dargli pacchetto, pacchetto di supporto e modulo se vuoi, oppure puoi fare un modulo
e poi dire import e la funzione specifica o il modulo stesso, molti modi per
farlo a seconda delle tue esigenze.
Il punto chiave qui è che i moduli e i pacchetti ci aiutano ad avere buone pratiche ingegneristiche e a costruire
grandi progetti in modo organizzato, pur continuando a far dialogare tutti questi file tra loro.
Bene, è stato molto, impariamo di più nel prossimo video.