Россия и Беларусь начали и продолжают войну против целого народа Украины!

Пространство имен и область видимости в Python

  Юрий  | 

  Обновл. 1 Мар 2023  | 

 317

Пространство имен — это область кода, в которой находится набор идентификаторов. Оно используется для хранения значений переменных и других объектов, которые связаны с определенными именами (идентификаторами).

Область видимости — это часть программы, из которой можно получить доступ к пространству имен напрямую без какого-либо префикса.

Типы пространств имен в Python

В Python есть три типа пространств имен:

   Встроенное пространство имен создается при запуске интерпретатора Python и существует, пока интерпретатор работает. По этой причине встроенные функции, такие как id(), print() и др., всегда доступны из любой части программы.

   Глобальное пространство имен создается в каждом модуле. Модули могут иметь разные функции и классы.

   Локальное пространство имен создается при вызове функции, в которой определены имена.

Разные пространства имен изолированы. Следовательно, одно и то же имя, которое может существовать в разных модулях, не вызывает конфликта имен. Аналогично и в случае с классом. Следующая диаграмма иллюстрирует данную концепцию.


Область видимости в Python


Несмотря на то, что определены различные уникальные пространства имен, мы не можем получить доступ ко всем из них из каждой части программы. В игру вступает такое понятие, как область видимости.

Область видимости — это часть программы, из которой можно получить доступ к пространству имен напрямую без какого-либо префикса.

В любой момент существует как минимум три вложенные области видимости:

   Область видимости функции с локальными именами.

   Область видимости модуля с глобальными именами.

   Встроенная область видимости со встроенными именами.

Когда внутри функции создается ссылка, имя ищется в локальном пространстве имен, затем в глобальном пространстве имен и, наконец, во встроенном пространстве имен.

Если функция находится внутри другой функции, новая область видимости помещается в локальную область видимости (функции).

Рассмотрим пример использования пространств имен в Python:

Результат:

15
25
35

Здесь есть три отдельных пространства имен: глобальное пространство имен, локальное пространство имен внутри внешней функции и локальное пространство имен внутри внутренней функции.

   global_var — находится в глобальном пространстве имен, имеет значение 15.

   outer_var — находится в локальном пространстве имен функции outer_function(), имеет значение 25.

   inner_var — находится во вложенном локальном пространстве имен функции inner_function(), имеет значение 35.

При выполнении кода сначала выводится глобальная переменная global_var, а затем локальные переменные: outer_var и inner_var при вызове внешней и внутренней функций, соответственно.

Рассмотрим пример использования глобального ключевого слова в Python:

Результат:

15
35

Здесь при вызове функции my_function() ключевое слово global используется для указания того, что global_var является глобальной переменной, и ее значение изменяется на 35.

Сначала мы выводим global_var со значением 15, затем вызываем функцию, и глобальная переменная изменяется на 35 внутри этой функции. И, наконец, выводим измененное значение переменной global_var.

Оценить статью:

Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (1 оценок, среднее: 2,00 из 5)
Загрузка...

Добавить комментарий

Ваш E-mail не будет опубликован. Обязательные поля помечены *