Инструкция 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())
Что не так с этим кодом? Найдите и исправьте ошибку автора кода.