Область видимости. Глобальные и локальные переменные

Функции в свое работе активно используют переменные. Но для того, чтобы функции не мешали друг друг в своей работе, переменные объявленные внутри одной функции не видны внутри другой функции. К примеру, объявим две функции и попытаемся получить доступ из одной функции к переменным другой:

def function1():
    a = 1
    print(a)

def function2():
    print(a)

function1()
function2()

Мы получим примерно такую ошибку:

Traceback (most recent call last):
  File "c:/projects/test.py", line 9, in <module>
    function2()
  File "c:/projects/test.py", line 6, in function2
    print(a)
NameError: name 'a' is not defined

Таким образом каждая функция имеет свою область видимости. Т.е. те переменные которые она может использовать в своей работе.

Но, что если я хочу использовать значения переменных из одной функции в другой функции. В таком случае, одним из методов является использования глобальных переменных - т.е. таких переменных, которые не ограниченны областью видимостью какой-то одной функции, а доступны всем функциям программы, например:

def function1():
    global a
    a = 5
    print(a)

def function2():
    global a
    print(a)

function1()
function2()

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

5
5

results matching ""

    No results matching ""