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

Как использовать глобальные переменные в функции Python?

Резюме: Используйте глобальное ключевое слово, чтобы объявить глобальную переменную внутри локального объема функции, чтобы она могла модифицирована или использована вне функции. Чтобы использовать глобальные переменные между модулями Создайте специальный модуль конфигурации и импортируйте модуль в нашу основную программу. Модуль доступен как … Как использовать глобальные переменные в функции Python? Подробнее “

Автор оригинала: 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, in 
    foo()
  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 нелокальный Переменная Значение Местный Переменная также меняется.

Заключение

Ключевые моменты, которые мы узнали в этой статье:

  1. Переменные Scopes:
    • Местный спектр
    • Охватывать
    • Глобальный спектр
    • Встроенный объем
  2. Важные ключевые слова:
    • глобальный Ключевое слово

      1. Как использовать глобальную переменную внутри функции?
      2. Как использовать глобальную переменную через модули?
    • нелокальный Ключевое слово

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

Куда пойти отсюда?

Достаточно теории, давайте познакомимся!

Чтобы стать успешным в кодировке, вам нужно выйти туда и решать реальные проблемы для реальных людей. Вот как вы можете легко стать шестифункциональным тренером. И вот как вы польские навыки, которые вам действительно нужны на практике. В конце концов, что такое использование теории обучения, что никто никогда не нуждается?

Практические проекты – это то, как вы обостряете вашу пилу в кодировке!

Вы хотите стать мастером кода, сосредоточившись на практических кодовых проектах, которые фактически зарабатывают вам деньги и решают проблемы для людей?

Затем станьте питоном независимым разработчиком! Это лучший способ приближения к задаче улучшения ваших навыков Python – даже если вы являетесь полным новичком.

Присоединяйтесь к моему бесплатным вебинаре «Как создать свой навык высокого дохода Python» и посмотреть, как я вырос на моем кодированном бизнесе в Интернете и как вы можете, слишком от комфорта вашего собственного дома.

Присоединяйтесь к свободному вебинару сейчас!

Я профессиональный Python Blogger и Content Creator. Я опубликовал многочисленные статьи и создал курсы в течение определенного периода времени. В настоящее время я работаю полный рабочий день, и у меня есть опыт в областях, таких как Python, AWS, DevOps и Networking.

Вы можете связаться со мной @:

Оригинал: “https://blog.finxter.com/how-to-use-global-variables-in-a-python-function/”