Ho avuto una domanda su come funzionano le librerie come numpy. Quando imposto numpy, ho accesso a un host di classi, funzioni e costanti incorporate come numpy.array, numpy.sqrt ecc.Moduli Python con sottomoduli e funzioni
Ma all'interno di Numpy ci sono ulteriori sottomoduli come numpy.testing.
Come è fatto? Nella mia limitata esperienza, i moduli con i sottomoduli sono semplicemente cartelle con un file init .py, mentre i moduli con funzioni/classi sono veri e propri file python. Come si crea una "cartella" di moduli che ha anche funzioni/classi?
Quindi com'è possibile importare una libreria come numpy o scipy e contenere sia classi/funzioni (come un modulo) che altri moduli (come un pacchetto). Quindi posso eseguire numpy.array (una classe) o numpy.testing.assert ... (ottenere un modulo). – ImpGuard
Ho appena risposto che è tutto nel '__init __. Py'. Qualsiasi funzione in questo sarà un membro di prima classe del pacchetto quando viene caricato dall'interprete. –
Ah, questo è quello che mi stavo chiedendo. Ho pensato che sarebbe stato considerato brutto da un sacco di misc. la logica andrebbe in esso. Presumo che tutto sia stato codificato separatamente e in qualche modo tutto combinato in __init__.py dopo? Sembra abbastanza utile avere qualcosa del genere ma non sono sicuro di come replicarlo senza dover semplicemente scaricare un sacco di codice in un unico file. – ImpGuard