Автор оригинала: Shubham Sayon.
Резюме: Используйте глобальный
Ключевое слово, чтобы объявить глобальную переменную в локальном объеме функции, чтобы она могла быть модифицирована или использоваться вне функции. Чтобы использовать глобальные переменные между модулями Создайте специальный модуль конфигурации и импортируйте модуль в нашу основную программу. Модуль доступен как глобальное имя в нашей программе. Поскольку каждый модуль имеет один экземпляр, любые изменения в объекте модуля отражаются везде.
Проблема: Учитывая функцию; Как использовать глобальную переменную в нем?
Пример:
def foo(): # Some syntax to declare the GLOBAL VARIABLE "x" x = 25 # Assigning the value to the global variable "x" def func(): # Accessing global variable defined in foo() y = x+25 print("x=",x,"y=",y) foo() func()
Ожидаемый вывод:
x= 25 y= 50
В приведенном выше примере нам дали функцию имени foo ()
который возвращает глобальную переменную х
Такое, что ценность х
Может использоваться внутри другой функции с именем Func ()
Отказ Давайте посмотрим, как мы можем использовать глобальный
Ключевое слово для разрешения нашей проблемы.
Решение: Использование глобального ключевого слова
Мы можем использовать глобальный
в качестве префикса к любой переменной, чтобы сделать его глобальным внутри локального объема.
def foo(): global x x = 25 def func(): y = x+25 print("x=",x,"y=",y) foo() func()
Выход:
x= 25 y= 50
Теперь, когда мы уже знаем наше решение, мы должны пройти некоторые основные концепции, необходимые для твердого понимания нашего решения. Итак, без дальнейшей задержки давайте обсудим их один за другим.
Переменная область В питоне
Область переменной Регион или часть программы, где переменная может быть доступна напрямую. Давайте обсудим различные вариабельные области, доступные в Python.
❖ локальный объем
Когда переменная создана внутри функции, она доступна только в объеме этой функции и перестает существовать при использовании вне функции. Таким образом, переменная принадлежит к Местный охват функции.
def foo(): scope = "local" print(scope) foo()
Выход:
local
❖ ограждающий спектр
Примечающая область возникает при вложенных функциях. Когда переменная находится в объеме внешней функции, это означает, что переменная находится в ограждении функции. Следовательно, переменная видима в объеме внутренних и внешних функций.
Пример:
def foo(): scope = "enclosed" def func(): print(scope) func() foo()
выход:
enclosed
В приведенном выше примере переменная Область
находится внутри ограждения функции foo ()
и доступен внутри foo ()
а также Func ()
Функции.
❖ глобальный объем
Глобальная переменная – это переменная, которую объявлена в Глобальный объем и может быть использован по всей программе; Это означает, что он может быть доступен внутри, а также за пределами объема функции. Глобальная переменная обычно объявляет внешние функции, в основном корпусе кода Python.
Пример:
name = "FINXTER" def foo(): print("Name inside foo() is ", name) foo() print("Name outside foo() is :", name)
Выход:
Name inside foo() is FINXTER Name outside foo() is : FINXTER
В приведенном выше примере Имя
Это глобальная переменная, которая может быть доступна внутри, а также за пределами объема функции foo (). Давайте проверим, что произойдет, если вы попытаетесь изменить значение глобальной переменной Имя
внутри функции.
name = "FINXTER" def foo(): name = name + "PYTHON" print("Name inside foo() is ", name) foo()
Выход :
Traceback (most recent call last): File "main.py", line 8, infoo() File "main.py", line 4, in foo name = name + "PYTHON" UnboundLocalError: local variable 'name' referenced before assignment
Мы получаем UnsoundLocalError
В этом случае, потому что Python лечит Имя
как локальная переменная внутри foo ()
и Имя
не определен внутри foo ()
Отказ Если вы хотите узнать больше о USIUNDLOCALERROR и как это решить, пожалуйста, прочитайте его в нашем Руководство по разговору здесь Отказ
❖ встроенный объем
Встроенный объем – это самый широкий объем, доступный в Python и содержит ключевые слова, функции, исключения и другие атрибуты, которые встроены в Python. Имена в встроенном объеме доступны по всей программе Python. Он загружен автоматически во время выполнения программы Python/Script.
Пример:
x = 25 print(id(x))
Выход:
140170668681696
В приведенном выше примере мы не импортировали какой-либо модуль для использования функций Печать ()
или ID ()
Отказ Это потому, что они оба находятся в встроенном объеме.
Обсудив вариабельные области в Python, давайте обсудим о нескольких очень важных Ключевые слова в Python по отношению к вариабельным областям.
Используйте глобальные переменные внутри функции с использованием глобального ключевого слова
Мы уже читали о глобальном объеме, где мы узнали, что каждая переменная, которая объявлена в основном корпусе и внешней функции в коде Python, является глобальным по умолчанию. Однако, если у нас есть ситуация, когда нам нужно объявить глобальную переменную внутри функции, как в порядке выступления этой статьи, то Глобальное ключевое слово приходит к нашему спасению. Мы используем Глобальное ключевое слово
Внутри функции, чтобы сделать переменную Global в локальном объеме. Это означает, что глобальное ключевое слово позволяет нам модифицировать и использовать переменную за пределами объема функции, в пределах которой она была определена.
Теперь давайте посмотрим на следующую программу, чтобы понять использование глобальный
ключевое слово.
def foo(): global name name = "PYTHON!" print("Name inside foo() is ", name) foo() name = "FINXTER "+name print("Name outside foo() is ", name)
Выход:
Name inside foo() is PYTHON! Name outside foo() is FINXTER PYTHON!
В приведенном выше примере у нас есть глобальное имя переменной, объявленное внутри локального объема функции FOO (). Мы можем получить доступ и изменять эту переменную за пределами объема этой переменной, как видно в приведенном выше примере.
❃ ТОЧКИ ЗАПОМНИТЬ
- Переменная, определенная вне функции, является глобальной по умолчанию.
- Чтобы определить глобальную переменную внутри функции, которую мы используем
глобальный
ключевое слово. - Переменная внутри функции без
глобальный
Ключевое слово по умолчанию является локальным. - Используя
глобальный
Ключевое слово для переменной, которая уже находится в глобальном объеме, то есть за пределами функции не влияет на переменную.
Глобальные переменные через модули
Для того, чтобы поделиться информацией через модули Python в том же листе кода, нам нужно создать специальный модуль конфигурации, известный как config . или CFG модуль. Мы должны импортировать этот модуль в нашу программу. Модуль затем доступен как глобальное имя в нашей программе. Поскольку каждый модуль имеет один экземпляр, любые изменения в объекте модуля отражаются везде.
Давайте посмотрим на следующий пример, чтобы понять, как мы можем поделиться глобальными переменными через модули.
Шаг 1: Файл config.py используется для хранения глобальных переменных.
Шаг 2: modify.py файл используется для изменения глобальных переменных.
Шаг 3: Main.py файл используется для применения и использования измененных значений глобальной переменной.
Вывод после выполнения main.py.
Нелокальное ключевое слово
нелокальный
Ключевое слово полезно, когда у нас есть вложенная функция, то есть функции, имеющие переменные в прилагаемом объеме. Другими словами, если вы хотите изменить/изменить переменную, которая находится в объеме прилагающей функции (внешняя функция), то вы можете использовать нелокальный
ключевое слово.
Пример:
def foo(): a = 25 print("Value of 'a' before calling func = ",a) def func(): nonlocal a a=a+20 print("Value of 'a' inside func = ",a) func() print("Value of 'a' after exiting func = ",a) foo()
Выход:
Value of 'a' before calling func = 25 Value of 'a' inside func = 45 Value of 'a' after exiting func = 45
Из приведенного выше примера ясно, что если мы изменим значение A нелокальный
Переменная Значение Местный
Переменная также меняется.
Заключение
Ключевые моменты, которые мы узнали в этой статье:
- Переменные Scopes:
- Местный спектр
- Охватывать
- Глобальный спектр
- Встроенный объем
- Важные ключевые слова:
глобальный
Ключевое слово- Как использовать глобальную переменную внутри функции?
- Как использовать глобальную переменную через модули?
-
нелокальный
Ключевое слово
Я надеюсь, что вы нашли эту статью полезную, и вы можете легко применить вышеуказанные концепции в вашем коде. Пожалуйста, подпишитесь и оставайся настроенными для более интересных статей.
Куда пойти отсюда?
Достаточно теории, давайте познакомимся!
Чтобы стать успешным в кодировке, вам нужно выйти туда и решать реальные проблемы для реальных людей. Вот как вы можете легко стать шестифункциональным тренером. И вот как вы польские навыки, которые вам действительно нужны на практике. В конце концов, что такое использование теории обучения, что никто никогда не нуждается?
Практические проекты – это то, как вы обостряете вашу пилу в кодировке!
Вы хотите стать мастером кода, сосредоточившись на практических кодовых проектах, которые фактически зарабатывают вам деньги и решают проблемы для людей?
Затем станьте питоном независимым разработчиком! Это лучший способ приближения к задаче улучшения ваших навыков Python – даже если вы являетесь полным новичком.
Присоединяйтесь к моему бесплатным вебинаре «Как создать свой навык высокого дохода Python» и посмотреть, как я вырос на моем кодированном бизнесе в Интернете и как вы можете, слишком от комфорта вашего собственного дома.
Присоединяйтесь к свободному вебинару сейчас!
Я профессиональный Python Blogger и Content Creator. Я опубликовал многочисленные статьи и создал курсы в течение определенного периода времени. В настоящее время я работаю полный рабочий день, и у меня есть опыт в областях, таких как Python, AWS, DevOps и Networking.
Вы можете связаться со мной @:
Оригинал: “https://blog.finxter.com/how-to-use-global-variables-in-a-python-function/”