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

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

Пространство имен Python, Python Reatual Scope, правила переменной Python Phents Python, программа примера пространства имен Python, Python Local и The Code Code Code.

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

Чтобы стать лучшим программистом, одно из самых важных вещей, чтобы понять, это пространства имен Python и вариабельные области. Причина в том, что, когда вы создаете многоклассные и многофакторные программы, зная область применения переменных, которые вы определяете, может означать разницу между правильными выходами и получать здесь странные выходы.

Так что без какой-либо дальнейшей задержки давайте направимся в него.

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

Пространство имен в Python – это сборник в основных ключевых слов и объектов, которые Python имеет в памяти. Это очень распространенная концепция в объектно-ориентированном программировании.

В Python пространство имен представляет собой пару ключ, реализуемую как словарь. В Python есть 4 пространства имен в Python:

  1. Встроенный
  2. Глобальный
  3. Заключать в себя
  4. Местный

Получение более глубокого понимания пространств имен …

Если вы разделяете слово пространство имен, есть два элемента – имя и пространство.

Каждое имя в пространстве по существу является объектом. Когда вы определяете больше переменных, классов или функций в программе Python, вы расширите пространство имен. Они продолжают добавлять в локальные или глобальные пространства имен Python в зависимости от объема определенного объекта.

Посмотрите на пример реализации двух пространств имен ниже:

Намеа и nameb Отказ Каждый объект в пространстве имен определяется с помощью VAR_Name, которое является именем объекта.

Таким образом, namea и nameb – это пространства имен, а var_name1, var_name2 и т. Д. – имена в пространстве имен.

nameA={ 'var_name1'=object1, 'var_name2'=object2, …}
nameB={ 'var_name1'=object3, 'var_name2'=object5, 'var_name3'=object6, …}

Что такое вариабельная область в Python?

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

Эта разница состоит в том, какие призывы. Итак, как Python определяет, какова область объема переменной или объекта в программе? Давайте посмотрим на пример ниже:

name = 'Andy'  # define name

def printBob():
   name = 'Bob'  # define name in function
   print('printing from the def: ', name)  # print from function

# the main function
print('printing from the main: ', name)  # print from the main
printBob()  # call the function to print

Производимый выход будет

printing from the main:  Andy
printing from the def:  Bob

Как вы можете видеть, как переменные, имеющие одно и то же имя, определены в разных областях:

  1. Во-первых, в глобальном масштабе, где вся программа может получить доступ к ней)
  2. Второй один определен в функции PrintBOB (), где только эта функция может получить доступ к значению переменной

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

def printBob():
   var = 'print it'
   print('printing from the function: ', var) # this statement will run without errors

# call the function to  print the variable value
printBob()
# try to access the object from outside of its scope
print('printing from the main: ', var)  # this will produce error

Итак, вы увидите вывод, как приведенный ниже.

Как видите, второе оператор печати производит ошибку. Причина в том, что переменная по имени var определяется в рамках функции PrintBOB () в приведенном выше примере.

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

Пример вложенных функций Python

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

var = 0
name = 'absicsa'

def function_outer():
   # global var    ; no need to declare to call the value
   name = 'nabisco'

   def function_inner():
       global var  # need to declare global to modify the value
       name = 'outlet'
       var = 23
       print('name :',name, ', var :', var)

   print('name :', name, ', var :', var)
   function_inner()

print('name :', name, ', var :', var)
function_outer()

Выход кода будет:

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

Итак, function_outer () Функция может быть вызвана с объема основной функции во время function_inner () Функция может быть вызвана из function_outer () Область функции.

По сравнению, если вы определите переменные за пределами любой функции, они являются глобальными переменными и могут быть доступны всей программой. Если вы хотите получить доступ к переменным из внешних областей, вы можете использовать нелокальное ключевое слово, определенное в Python 3.x.

Срок службы пространства имен

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

Итак, вот и все о пространствах имен Python и вариабельные области. У меня есть гораздо более глубокое понимание спецификаций Python и пространства имен в этой статье. Если у вас есть какие-либо вопросы, не стесняйтесь комментировать ниже!

Ссылки: Официальная документация