У багатьох ресурсах я виявив, що "область" та "простори імен" використовуються взаємозамінно, що здається дещо заплутаним, оскільки вони означають різні речі.
- Область застосування визначає область коду, де є ім'я.
- Правило LEGB визначає спосіб пошуку імен.
- Простір імен - це місце, де ви шукаєте імена.
Потім я прочитав:
- "імена прив'язуються до простору імен відповідно до того, куди вони присвоєні ..." (що, на мою думку, є угода з областями в лексичному обстеженні).
- "функції додають додатковий шар простору імен у ваші програми" [ посилання. ] (не додають вони додатковий локальний обсяг?)
- "всі імена, призначені всередині визначення функції, розміщуються в локальній області (простір імен, пов'язаний з викликом функції)."
- "глобальна область застосування - тобто, область імен, в якій змінні, створені (призначені) на верхньому рівні файлу модуля."
* усі цитати - з вивчення пітона 5-го видання ch17
Чи є простори імен у Python способом реалізації областей застосування? Вони однакові? Хтось може мене просвітити?