You are currently viewing Глобальное ключевое слово в Python

Глобальное ключевое слово в Python

Глобальное ключевое слово-это ключевое слово, которое позволяет пользователю изменять переменную за пределами текущей области. Он используется для создания глобальных переменных из неглобальной области, т. е. внутри функции. Ключевое слово Global используется внутри функции только тогда, когда мы хотим выполнять задания или когда мы хотим изменить переменную. Global не требуется для печати и доступа.

Правила глобального ключевого слова:

  • Если переменной присваивается значение в любом месте тела функции, предполагается, что она локальная, если явно не объявлена глобальной.
  • Переменные, на которые ссылаются только внутри функции, являются неявно глобальными.
  • Мы используем ключевое слово global для использования глобальной переменной внутри функции.
  • Нет необходимости использовать глобальное ключевое слово вне функции.

Использование глобального ключевого слова:

Для доступа к глобальной переменной внутри функции нет необходимости использовать глобальное ключевое слово.

Пример 1:

# Python program showing no need to
# use global keyword for accessing
# a global value

# global variable
a = 15
b = 10

# function to perform addition
def add():
	c = a + b
	print(c)

# calling a function
add()

Выход:

25

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

Код 2: Без глобального ключевого слова

# Python program showing to modify
# a global value without using global
# keyword

a = 15

# function to change a global value
def change():

	# increment value of a by 5
	a = a + 5
	print(a)

change()

Выход:

UnboundLocalError: local variable 'a' referenced before assignment

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

Код 3 : С глобальным ключевым словом

# Python program to modify a global
# value inside a function

x = 15
def change():

	# using a global keyword
	global x

	# increment value of a by 5
	x = x + 5
	print("Value of x inside a function :", x)
change()
print("Value of x outside a function :", x)

Выход:

Value of x inside a function : 20 Value of x outside a function : 20 

В приведенном выше примере мы сначала определяем x как глобальное ключевое слово внутри функции change(). Значение x затем увеличивается на 5, т. е. x=x+5, и, следовательно, мы получаем результат в виде 20.
Как мы можем видеть, изменив значение внутри функции change(), изменение также отражается на значении за пределами глобальной переменной.

Глобальные переменные в модулях python :

Лучший способ поделиться глобальными переменными между различными модулями в рамках одной и той же программы-создать специальный модуль (часто называемый config или cfg). Импортируйте модуль конфигурации во все модули вашего приложения; затем модуль становится доступным под глобальным именем. Существует только один экземпляр каждого модуля, и поэтому любые изменения, внесенные в объект модуля, отражаются везде. Например, совместное использование глобальных переменных между модулями

Код 1: Создать config.py файл для хранения глобальных переменных:

x = 0
y = 0
z ="none"

Код 2: Создайте modify.py файл для изменения глобальных переменных:

import config
config.x = 1
config.y = 2
config.z ="programbox"

Здесь мы изменили значения x, y и z. Эти переменные были определены в модуле config.py, следовательно, мы должны импортировать config модуль, и мы можем использовать config.variable_name для доступа к этим переменным.

Код 3: Создайте main.py файл для изменения глобальных переменных:

import config
import modify
print(config.x)
print(config.y)
print(config.z)

Выход:

1
2 programbox

Глобальный во вложенных функциях

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

# Python program showing a use of
# global in nested function

def add():
	x = 15
	
	def change():
		global x
		x = 20
	print("Before making changing: ", x)
	print("Making change")
	change()
	print("After making change: ", x)

add()
print("value of x",x)

Выход:

Before making changing: 15 Making change After making change: 15 value of x 20 

В приведенном выше примере До и после внесения изменений () переменная x принимает значение локальной переменной, т. е. x = 15. Вне add() функция, переменная x будет принимать значение, определенное в change() функция, т. е. x = 20.потому что мы использовали глобальное ключевое слово в x чтобы создать глобальную переменную внутри функции change () (локальная область).