ePrometeusCorsoLinuxLinux
testi articoli
Testi Articoli  Download
Home | Espressioni | Comandi | Funzioni | Moduli | Classi | 
CorsoJava è ora Video! Free for all!
Clicca Qui!
Corso Python
Python: le funzioni
Funzioni
Passaggio Parametri
Parametri
argomenti "modello"
unpacking di parametri
Lambda
Ordinamento


<<< Funzioni >>>

Una funzione è semplicemente un certo insieme di comandi. Questo viene chiamato con certe variabili impostate ai valori iniziali di chiamata. Qeste sono dette parametri.

In questo modo si astrae una sequenza di comandi in un concetto. Invece scrivere tutti i comandi che calcolano il fattoriale, possiamo semplicemente definire una funzione "fact", e poi chiamare quella funzione, per calcolare il fattoriale.

In pratica c'è di più perché una funzione, potendo chiamare se stessa, crea un metodo di calcolo che non si può realizzare in altro modo. Queste tecnica si chiama "ricorsione", ma non è questa la sede per approfondirlo.

Vediamo dunque come possiamo definire una funzione che calcola il fattoriale, come nel seguente esempio:

def fact(n):
	"""Fattoriale di un numero"""
	if fact == 1:
		return 1
	else
		return n * fact(n-1)

La parte che ci interessa è la "def fact(n)", ovvero: la parola chiave "def" introduce la definizione di funzione; segue il nome della funzione e tra parentesi i parametri. I parametri sono semplicemente una sequenza di nomi di variabili, che risultano assegnate quando si esegue il corpo della funzione.

Per inciso la funzione dimostrata nell'esempio è effettivamente ricorsiva, e quindi calcola il fattoriale chiamando se stesso. Il concetto è che siccome fattoriale di 5 si calcola come 5 * 4 * 3 * 2 * 1, non facciamo altro che applicare la logica che il 5! è uguale al fattoriale di 5*4!.

Poi notiamo la "document string", ovvero una stringa che serve a documentare la funzione (e che non viene considerata in esecuzione). Questa informazione è molto utile in quanto viene visualizzata in molti ambienti interattivi per lo sviluppo Python.

La cosa importante è che è stata creata una oggetto che è possibile "chiamare", passando argomenti (callable). Guardate il seguente esempio:

>>> fact
<function fact at 0x018D31C8>
>>> fact(6)
720

Ho applicato a fact (che se valuto da solo, mi dice di contenere un oggetto di tipo funzione) una serie di parametri. Questo causa l'esecuzione del corpo della funzione che ho prima definito, assegnando i parametri.

ePrometeus s.r.l. - Web Software House & Open Source System Integrator
MILANO - SAN BENEDETTO DEL TRONTO(AP)
Contatti: info@eprometeus.com