Moduli Python: impara a creare e importare moduli personalizzati e integrati

In questo articolo imparerai a creare e importare moduli personalizzati in Python. Inoltre, troverai diverse tecniche per importare e utilizzare moduli personalizzati e integrati in Python.

Video: moduli Python

Cosa sono i moduli in Python?

I moduli fanno riferimento a un file contenente dichiarazioni e definizioni Python.

Un file contenente codice Python, ad esempio:, example.pyè chiamato modulo e il suo nome modulo sarebbe example.

Usiamo moduli per suddividere programmi di grandi dimensioni in piccoli file gestibili e organizzati. Inoltre, i moduli forniscono la riusabilità del codice.

Possiamo definire le nostre funzioni più utilizzate in un modulo e importarlo, invece di copiare le loro definizioni in programmi diversi.

Creiamo un modulo. Digita quanto segue e salvalo come example.py.

 # Python Module example def add(a, b): """This program adds two numbers and return the result""" result = a + b return result

Qui abbiamo definito una funzione add()all'interno di un modulo denominato example. La funzione prende due numeri e restituisce la loro somma.

Come importare moduli in Python?

Possiamo importare le definizioni all'interno di un modulo in un altro modulo o nell'interprete interattivo in Python.

Usiamo la importparola chiave per farlo. Per importare il nostro modulo definito in precedenza example, digitiamo quanto segue nel prompt di Python.

 >>> import example

Questo non importa i nomi delle funzioni definite exampledirettamente nella tabella dei simboli corrente. Importa solo il nome del modulo examplelì.

Usando il nome del modulo possiamo accedere alla funzione usando l' .operatore punto . Per esempio:

 >>> example.add(4,5.5) 9.5

Python ha tonnellate di moduli standard. Puoi controllare l'elenco completo dei moduli standard Python e i loro casi d'uso. Questi file si trovano nella directory Lib all'interno della posizione in cui hai installato Python.

I moduli standard possono essere importati nello stesso modo in cui importiamo i nostri moduli definiti dall'utente.

Esistono vari modi per importare i moduli. Sono elencati di seguito …

Dichiarazione di importazione di Python

Possiamo importare un modulo usando l' importistruzione e accedere alle definizioni al suo interno usando l'operatore punto come descritto sopra. Ecco un esempio.

 # import statement example # to import standard module math import math print("The value of pi is", math.pi)

Quando esegui il programma, l'output sarà:

 Il valore di pi greco è 3,141592653589793

Importa con rinomina

Possiamo importare un modulo rinominandolo come segue:

 # import module by renaming it import math as m print("The value of pi is", m.pi)

Abbiamo rinominato il mathmodulo come m. Questo può farci risparmiare tempo durante la digitazione in alcuni casi.

Nota che il nome mathnon è riconosciuto nel nostro ambito. Quindi, math.pinon è valido ed m.piè l'implementazione corretta.

Istruzione Python from … import

Possiamo importare nomi specifici da un modulo senza importare il modulo nel suo insieme. Ecco un esempio.

 # import only pi from math module from math import pi print("The value of pi is", pi)

Qui abbiamo importato solo l' piattributo dal mathmodulo.

In questi casi, non usiamo l'operatore punto. Possiamo anche importare più attributi come segue:

 >>> from math import pi, e >>> pi 3.141592653589793 >>> e 2.718281828459045

Importa tutti i nomi

Possiamo importare tutti i nomi (definizioni) da un modulo utilizzando il seguente costrutto:

 # import all names from the standard module math from math import * print("The value of pi is", pi)

Qui abbiamo importato tutte le definizioni dal modulo matematico. Ciò include tutti i nomi visibili nel nostro ambito tranne quelli che iniziano con un trattino basso (definizioni private).

Importare tutto ciò con il simbolo asterisco (*) non è una buona pratica di programmazione. Ciò può portare a definizioni duplicate per un identificatore. Inoltre ostacola la leggibilità del nostro codice.

Percorso di ricerca del modulo Python

Durante l'importazione di un modulo, Python esamina diversi punti. L'interprete cerca prima un modulo integrato. Quindi (se il modulo integrato non viene trovato), Python cerca in un elenco di directory definite in sys.path. La ricerca è in questo ordine.

  • La directory corrente.
  • PYTHONPATH (una variabile d'ambiente con un elenco di directory).
  • La directory predefinita dipendente dall'installazione.
 >>> import sys >>> sys.path ('', 'C: \ Python33 \ Lib \ idlelib', 'C: \ Windows \ system32 \ python33.zip', 'C: \ Python33 \ DLLs ',' C: \ Python33 \ lib ',' C: \ Python33 ',' C: \ Python33 \ lib \ site-packages ')

We can add and modify this list to add our own path.

Reloading a module

The Python interpreter imports a module only once during a session. This makes things more efficient. Here is an example to show how this works.

Suppose we have the following code in a module named my_module.

 # This module shows the effect of # multiple imports and reload print("This code got executed")

Now we see the effect of multiple imports.

 >>> import my_module This code got executed >>> import my_module >>> import my_module

We can see that our code got executed only once. This goes to say that our module was imported only once.

Now if our module changed during the course of the program, we would have to reload it.One way to do this is to restart the interpreter. But this does not help much.

Python provides a more efficient way of doing this. We can use the reload() function inside the imp module to reload a module. We can do it in the following ways:

 >>> import imp >>> import my_module This code got executed >>> import my_module >>> imp.reload(my_module) This code got executed 

The dir() built-in function

Possiamo usare la dir()funzione per trovare i nomi definiti all'interno di un modulo.

Ad esempio, abbiamo definito una funzione add()nel modulo exampleche avevamo all'inizio.

Possiamo usare dirnel examplemodulo nel modo seguente:

 >>> dir(example) ('__builtins__', '__cached__', '__doc__', '__file__', '__initializing__', '__loader__', '__name__', '__package__', 'add')

Qui possiamo vedere un elenco ordinato di nomi (insieme a add). Tutti gli altri nomi che iniziano con un trattino basso sono attributi Python predefiniti associati al modulo (non definiti dall'utente).

Ad esempio, l' __name__attributo contiene il nome del modulo.

 >>> import example >>> example.__name__ 'example'

Tutti i nomi definiti nel nostro attuale spazio dei nomi possono essere trovati utilizzando la dir()funzione senza alcun argomento.

 >>> a = 1 >>> b = "hello" >>> import math >>> dir() ('__builtins__', '__doc__', '__name__', 'a', 'b', 'math', 'pyscripter')

Articoli interessanti...