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.