I Moduli in Python

Scritto da ambrix on . Postato in Corsi Programmazione

logo python ambrix.net

Lezione#11 Benvenuti alla undicesima lezione del corso Python in 11 passi: vedremo oggi come importare i Moduli.

La Libreria standard di Python è strutturata in  Moduli , ciascuno dei quali rappresenta un contenitore di attributi. Ad esempio, il modulo math contiene classi, funzioni e costanti che forniscono il supporto per la matematica; il modulo random fornisce il supporto per la generazione casuale di oggetti. Potremmo affermare che un modulo è un file che contiene codice python e che i moduli ci consentono di richiamare e usare questo codice quante volte vogliamo.

Un file di un Modulo ha estensione .py e può contenere funzioni, variabili e scripts. 

Ma vediamo un primo esempio: proviamo ad importare il modulo datetime che include le funzioni e le classi per analizzare, formattare e compiere operazioni aritmetiche sulle date.

# script_1101.py
import datetime
esp_1 = datetime.date(1985, 10, 26) #formato data Anno-Mese-Giorno
print("Esperimento #1 in data: " + str(esp_1))

Esperimento #1 in data: 1985-10-26

Per chi non lo sapesse il 26 Ottobre del 1985 è la data in cui Emmett Brown alias Doc, mette in atto il primo salto nel tempo con la DeLorean. (Ritorno al Futuro I)

Primo passo compiuto! Con la keyword  import  riusciamo ad importare il modulo desiderato. Inoltre con datetime.date richiamiamo il metodo date del modulo datetime (usando la cosiddetta dot notation).

Se vogliamo una lista dei metodi e delle funzioni appartenenti al modulo possiamo usare dir(modulo).

Nel prossimo esempio, vedremo come importare specifiche funzioni di un modulo. Questo può servire a rendere più veloce l’accesso alle functions.

# script_1102.py
from datetime import date, time
esp_2 = date(1955, 11, 5) #formato data Anno-Mese-Giorno
t = time(6, 0, 1) #formato ora:minuto:secondo
print("Esperimento #2 in data: " + str(esp_2) + “ “ + str(t))

Esperimento #2 in data: 1955-11-05 06:00:01

Il 5 Novembre 1955 è la data in cui Marty McFly viaggia nel tempo ritornando negli anni 50, dove incontrerà la mamma e il papà ai tempi del liceo. (Ritorno al Futuro I)

Come si vede dall’ultimo esempio, si possono importare più funzioni dal modulo, occorre tuttavia separarle tramite virgole. Inoltre in questo modo possiamo omettere datetime e richiamare direttamente la funzione date() o la funzione time().

Una utile keyword (as) ci permette di rinominare importata con un nome che desideriamo:

# script_1103.py
from datetime import date as d
def date(compleanno):
    print("Il mio compleanno in data: " + str(compleanno))

compleanno = d(1976, 4, 19)
date(compleanno)

Il mio compleanno in data: 1976-04-19

Ok! Così facendo abbiamo ridefinito date() e successivamente abbiamo richiamato quella “originale” utilizzando il suo alias (d). La keywork as è quindi utile quando si vogliono evitare conflitti all’interno di uno script, nel caso in cui si incontrano funzioni che hanno lo stesso nome.

Vedremo ora cos’è un  Package , ossia una directory che contiene file con estensione .py. In generale tutti i package sono moduli ma non tutti i moduli sono package.

film.fantascienza
film.thriller
film.western
film.action.budget

In quest’ultimo esempio abbiamo tre sottomoduli (submodules) appartenenti al modulo film. Inoltre abbiamo anche un subpackage (action) che contiene il submodule budget. Ricapitolando: un modulo in un package è un submodule, una cartella in un package è un subpackage. Sembra leggermente contorta la cosa, ma se ci si riflette un po’ appare tutto lineare.

Più in dettaglio, un Package è una cartella contenente un file __init__.py. Nel caso in cui si omettesse questo file, Python non riuscirebbe a riconoscere la cartella come package. Possiamo usare altri metodi su un subpackage?

# script_1104.py
import film.action.budget
p = [100, 35, 790]

print("Budget: " + film.action.budget.add(p) + "mila dollari")

Budget: 925mila dollari

Il metodo add() viene applicato in coda al sottomodulo.

Siamo arrivati al termine del percorso Python in 11 Passi. Questa guida non vuole essere esaustiva, tuttavia vuole dare una base per iniziare a programmare in Python. Nei prossimi giorni pubblicherò altri esempi di questo bellissimo linguaggio. Prima di concludere però, vi lascio una  easter egg  di Python che si ricollega alla lezione introduttiva. Dalla console provate a importare questo e … fatemi sapere!

 >>>import this

Lezione precedente <– []–> Elenco Lezioni

Per Richieste, Avvisi e Lasciti Ereditari

Disclaimer

I contenuti di questo Blog (testi, immagini, foto, etc.) sono di mia creazione, tranne nei casi dove espressamente indicato.