En muchos recursos encontré que "alcance" y "espacios de nombres" se usan indistintamente, lo que parece un poco confuso ya que significan cosas diferentes.
- Ámbito define la región del código donde está disponible un nombre.
- La regla LEGB define la forma en que se buscan los nombres.
- El espacio de nombres es un lugar donde buscar nombres.
Entonces leí:
- "los nombres están vinculados a un espacio de nombres de acuerdo con el lugar al que están asignados ..." (que creo que es el trato con los ámbitos en el ámbito léxico)
- "las funciones agregan una capa de espacio de nombres adicional a sus programas" [ ref. ] (¿no agregan un alcance local adicional?)
- "todos los nombres asignados dentro de una definición de función se colocan en el ámbito local (el espacio de nombres asociado con la llamada a la función)".
- "alcance global, es decir, un espacio de nombres en el que viven las variables creadas (asignadas) en el nivel superior del archivo del módulo".
* todas las citas son del aprendizaje de python 5th edition ch17
¿Son los espacios de nombres en Python la forma en que se implementan los ámbitos? ¿Son la misma cosa? ¿Alguien puede iluminarme?