Рубрики
Без рубрики

Пространство имен Python и разрешение переменной массы (legb)

В этом руководстве мы узнаем о пространстве имен Python, объем переменной и правила для разрешения переменной области.

Автор оригинала: Pankaj Kumar.

Пространство имен Python и разрешение переменной массы (legb)

В этом руководстве мы узнаем о пространстве имен Python, объем переменной и правила для разрешения переменной области.

Что такое пространство имен Python?

Пространства имен Python – это контейнеры для имен отображений объектам. В Python все – это объект, и мы указываем имя на объект, чтобы мы могли получить доступ к ней позже.

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

namespace = {"name1":object1, "name2":object2}

В Python несколько независимых пространств имен могут существовать одновременно. Имена переменной могут быть использованы в этих пространствах имен.

function_namespace = {"name1":object1, "name2":object2}

for_loop_namespace = {"name1":object3, "name2":object4}

Давайте посмотрим на простой пример, где у нас есть несколько пространств имен.

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

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

Пространства имен Python можно разделить на четыре типа.

  1. Местное пространство имен : Функция, для петли, попробуйте за исключением блока – некоторые примеры локального пространства имен. Локальное пространство имен удаляется, когда функция или блок кода завершают его выполнение.
  2. Закрытое пространство имен : Когда функция определяется внутри функции, она создает закрытое пространство имен. Его жизненный цикл такой же, как локальное пространство имен.
  3. Глобальное пространство имен : Он относится к сценарию Python или текущий модуль. Глобальное пространство имен для модуля создается при чтении определения модуля. Как правило, пространства имен модуля также длится до конца переводчика.
  4. Встроенное пространство имен : Встроенное пространство имен создается, когда интерпретатор Python запускается, и он никогда не удаляется.

Python переменная спецификация

Практическая область Python определяет иерархию, в которой мы ищем перемему. Например, в вышеуказанной программе переменные присутствуют в различных пространствах имен. Когда мы хотим получить доступ к значению переменной по его названию, он ищет в иерархии пространства имен.

Правила разрешения варианта варианта Python (legb)

Переменные Python ищут в следующем порядке пространств имен.

Local -> Enclosed -> Global -> Built-in

Это также называется правилом Legb для разрешения переменной области.

Python Variable Case Разрешение Вручьего правила

Если имя не найдено в иерархии пространства имен, NameError Поднялся.

Когда мы создаем объект или импорт модуля, мы создаем отдельное пространство имен для них. Мы можем получить доступ к их переменным с использованием оператора DOT.

>>> import math
>>> 
>>> import numpy
>>> 
>>> print(math.pi)
3.141592653589793
>>> print(numpy.pi)
3.141592653589793
>>> 
>>> obj = object()
>>> print(obj.__doc__)
The most base type
>>> 

Давайте посмотрим на пример разрешения переменной области с участием всех пространств имен.

x = 10

print(f'x is {x}')


def outer():
    x = 20
    print(f'x is {x}')

    def inner():
        x = 30
        print(f'x is {x}')
        print(len("abc"))

    inner()


outer()
Пример сперматического применения Python

Заключение

Важно понимать, как работает пространство имен Python и вариабельное разрешение. Это не хорошая идея, чтобы использовать те же имена переменной в разных пространствах имен, потому что она создает путаницу. Он также может привести к повреждению данных, если переменная от локальной области удалена, и она присутствует в более высоких пространствах имен.

Рекомендации: