Python Область дії (застосування)
Змінна доступна лише в області, де вона створена. Це називається областю дії.
Локальна область
Змінна, створена всередині функції, належить до локальної області цієї функції та може використовуватися лише всередині цієї функції.
Приклад
Змінна, створена всередині функції, доступна всередині цієї функції:
def myfunc():
x = 300
print(x)
myfunc()
Спробуйте самі »
Функція всередині функції
Як пояснено в прикладі вище, змінна x
недоступна поза функцією, але вона доступна для будь-якої функції всередині функції:
Приклад
Доступ до локальної змінної можна отримати з функції всередині функції:
def myfunc():
x = 300
def myinnerfunc():
print(x)
myinnerfunc()
myfunc()
Спробуйте самі »
Глобальна область
Змінна, створена в основному тексті коду Python, є глобальною змінною та належить до глобальної області дії.
Глобальні змінні доступні в будь-якому діапазоні, як глобальному, так і локальному.
Приклад
Змінна, створена поза функцією, є глобальною і може використовуватися будь-ким:
x = 300
def myfunc():
print(x)
myfunc()
print(x)
Спробуйте самі »
Іменування змінних
Якщо ви працюєте з тим самим ім’ям змінної всередині та поза функцією, Python розглядатиме їх як дві окремі змінні, одну доступну в глобальній області (поза функцією), а іншу — у локальній області (всередині функції):
Приклад
Функція надрукує локальний x
, а потім код надрукує глобальний x
:
x = 300
def myfunc():
x = 200
print(x)
myfunc()
print(x)
Спробуйте самі »
Ключове слово global
Якщо вам потрібно створити глобальну змінну, але ви застрягли в локальній області, ви можете використати ключове слово global
.
Ключове слово global
робить змінну глобальною.
Приклад
Якщо ви використовуєте ключове слово global
, змінна належить до глобальної області:
def myfunc():
global x
x = 300
myfunc()
print(x)
Спробуйте самі »
Крім того, використовуйте ключове слово global
, якщо ви хочете внести зміни до глобальної змінної всередині функції.
Приклад
Щоб змінити значення глобальної змінної всередині функції, зверніться до змінної за допомогою ключового слова global
:
x = 300
def myfunc():
global x
x = 200
myfunc()
print(x)
Спробуйте самі »