In molte risorse ho trovato "scope" e "namespace" sono usati in modo intercambiabile, il che sembra un po 'confuso dal momento che significano cose diverse.
- L'ambito definisce la regione del codice in cui è disponibile un nome.
- La regola LEGB definisce il modo in cui i nomi vengono cercati.
- Namespace è un posto dove cercare i nomi.
Poi ho letto:
- "i nomi sono associati a uno spazio dei nomi in base a dove sono assegnati ..." (che credo sia l'accordo con gli ambiti in ambito lessicale).
- Le funzioni "aggiungono un ulteriore livello di spazio dei nomi ai tuoi programmi" [ ref . ] (non aggiungono un ambito locale extra?)
- "tutti i nomi assegnati all'interno di una definizione di funzione vengono inseriti nell'ambito locale (il file spazio dei nomi associato alla chiamata della funzione). "
- "ambito globale, ovvero uno spazio dei nomi in cui le variabili create (assegnate) al livello superiore del file del modulo sono attive."
* tutte le citazioni provengono da learning python 5th edition ch17
Gli spazi dei nomi sono in Python il modo in cui vengono implementati gli ambiti? Sono la stessa cosa? Qualcuno può illuminarmi?