2.3.10.3 Funzioni

Gli oggetti funzione vengono creati dalle definizioni di funzione. L'unica operazione su un oggetto funzione è la chiamata effettuabile su di esso: func(lista-argomenti).

Esistono solo due varietà di oggetti funzione: funzioni built-in e funzioni definite dall'utente. Supportano entrambe le stessa operazione (chiamata della funzione), ma l'implementazione è differente, da qui la differenza dei tipi oggetto.

L'implementazione aggiunge due attributi speciali in sola lettura: f.func_code è una funzione dell'oggetto codice (vedete più avanti) e f.func_globals è il dizionario usato per lo spazio dei nomi globali della funzione (questo è lo stesso di m.__dict__ dove m è il modulo nel quale la funzione f era stata definita).

Gli oggetti funzione supportano anche l'acquisizione e l'impostazione arbitraria di attributi, che possono venire usati, per esempio, per attaccare metadata a funzioni. L'attributo regolare notazione-punto viene usato per prendere ed impostare questi attributi. Notate che la corrente implementazione supporta soltanto gli attributi su funzioni definite dall'utente. Gli attributi delle funzioni sulle funzioni built-in potranno essere supportate in futuro.

Le funzioni hanno un altro attributo speciale, f.__dict__ (ovvero f.func_dict), che contiene lo spazio dei nomi usato per supportare gli attributi della funzione. __dict__ e func_dict possono essere accessibili direttamente o impostati da un oggetto dizionario. Un dizionario della funzione non può essere cancellato.

Vedete Circa questo documento... per informazioni su modifiche e suggerimenti.