Привет, друзья! В предыдущих уроках мы познакомились с переменными – этими маленькими ячейками памяти, куда мы складываем данные. Сегодня мы раскроем одну из их тайн: область видимости. Не пугайтесь, это не так сложно, как может показаться!
Что такое область видимости?
Представьте себе большой дом, разделенный на комнаты. В каждой комнате могут быть свои предметы, которые не видны из других комнат. Область видимости переменной — это как раз такая "комната", где она "живет" и где ее можно использовать. Если вы попытаетесь взять предмет (переменную) из другой комнаты (области видимости), у вас ничего не получится!
Основные типы областей видимости в Python:
- Локальная область видимости (Local Scope): Это как ваша собственная комната. Переменные, созданные внутри функции, "живут" только в ней и недоступны извне. Как только вы выходите из комнаты (функции завершается), все предметы (переменные) в ней исчезают.
- Глобальная область видимости (Global Scope): Это как общая гостиная в доме. Переменные, объявленные вне функций, считаются глобальными и доступны из любой части программы. Они "живут" до тех пор, пока вы не "уйдете из дома" (программа не завершится).
- Встроенная область видимости (Built-in Scope): Это как встроенный шкаф в доме, где хранятся уже готовые инструменты (функции и переменные Python, такие как print, len и т.д.). Вы можете использовать их в любой части программы без дополнительных объявлений.
Зачем нужна область видимости?
- Организация кода: Область видимости помогает структурировать код и избежать случайных изменений переменных в разных частях программы.
- Повторное использование имен: Вы можете использовать одно и то же имя переменной в разных функциях, не боясь конфликтов.
Пример:
global_var = "Я глобальная переменная!"
def my_function():
local_var = "Я локальная переменная!"
print(local_var)
print(global_var)
my_function()
print(global_var)
# print(local_var) # Вызовет ошибку!
В этом примере global_var — глобальная переменная, доступная как внутри, так и вне функции. local_var — локальная переменная, доступная только внутри my_function.
Ключевое слово global:
Если вам нужно изменить значение глобальной переменной внутри функции, используйте ключевое слово global.
global_var = 10
def my_function():
global global_var
global_var = 20
my_function()
print(global_var) # Выведет 20
А теперь задачки! Попробуйте решить их, чтобы закрепить знания:
Задача 1:
Что выведет следующий код?
x = 10
def my_function():
x = 5
print(x)
my_function()
print(x)
Задача 2:
Что выведет следующий код?
x = 10
def my_function():
global x
x = 5
my_function()
print(x)
Задача 3:
Напишите функцию, которая принимает число и возвращает его квадрат, используя глобальную переменную multiplier, которая равна 2.
Надеюсь, эта статья помогла вам разобраться в области видимости переменных в Python! Не бойтесь экспериментировать и писать код — это лучший способ учиться!