Инструкция global в Python
Пусть у нас есть внешняя глобальная
переменная i
. Также есть функция
func
, которая прибавляет к этой
переменной единицу:
i = 0
def func():
i += 1 # выведет ошибку
return i
После выполнения кода вернется ошибка,
потому что происходит конфликт глобальной
i
, объявленной во внешней коде, и
локальной i
, к которой прибавляется
1
, но сама переменная еще не
объявлена. Для того, чтобы исправить данную
проблему и задать функции работу именно с
глобальной переменной, нужно использовать
инструкцию global
. Эта инструкция
представляет собой объявление, которое
выполняется для всего текущего блока кода,
в котором оно задано.
Давайте перепишем предыдущий пример, объявив
в теле функции global
:
def func():
global i
i += 1
return i
print(func()) # выведет 1
В следующем коде некоторый программист допустил ошибку:
num = 4
def func():
num *= 2
return num
print(func())
Что не так с этим кодом? Найдите и исправьте ошибку автора кода.
В следующем коде некоторый программист допустил ошибку:
num = 10
def func():
num -= 3
return i
print(func())
Что не так с этим кодом? Найдите и исправьте ошибку автора кода.