Слайд 2
🌐 Глобальные переменные и константы
🔸 Глобальные переменные
Глобальными называются переменные, объявленные в основной программе (вне функций). Они доступны как основной программе, так и всем функциям.
birds = 5000 # глобальная переменная
def print_texas():
print('В Техасе обитает', birds, 'птиц.')
def print_california():
print('В Калифорнии обитает', birds, 'птиц.')
print_texas()
print_california()
Результат:
В Техасе обитает 5000 птиц.
В Калифорнии обитает 5000 птиц.
💡 Глобальные переменные позволяют обмениваться данными между основной программой и функциями.
⚠️ Конфликт имён: локальная перекрывает глобальную
birds = 5000 # глобальная переменная
def print_texas():
birds = 1000 # локальная переменная
print('В Техасе обитает', birds, 'птиц.')
def print_california():
birds = 7000 # локальная переменная
print('В Калифорнии обитает', birds, 'птиц.')
print_texas()
print_california()
Результат:
В Техасе обитает 1000 птиц.
В Калифорнии обитает 7000 птиц.
⚡ Если внутри функции объявлена локальная переменная с тем же именем,
что и глобальная, то глобальная становится невидимой в этой функции.
🚫 Почему глобальные переменные — зло
Большинство программистов стараются не использовать глобальные переменные. Вот почему:
- 🧩 Они затрудняют отладку — значение может измениться в любой части программы.
- 🔄 Функции, использующие глобальные переменные, становятся зависимыми от них и теряют универсальность.
- 🕵️♂️ Глобальные переменные ухудшают читаемость — понять, где именно изменяется их значение, сложно.
✅ Лучше передавать данные через параметры функций,
а не использовать глобальные переменные.
🔹 Глобальные константы
Использование глобальных констант считается допустимым. Константы — это глобальные значения, которые не должны изменяться во время работы программы.
В Python нет настоящих констант, но их можно имитировать, просто договорившись не изменять значение:
PI = 3.14159265
E = 2.71828
Пример из модуля math:
import math
print(math.pi) # 3.141592653589793
print(math.e) # 2.718281828459045
💡 По соглашению, имена констант в Python записывают заглавными буквами.
🔑 Ключевое слово global
Если нужно изменить значение глобальной переменной внутри функции,
её необходимо объявить с помощью ключевого слова global.
def print_texas():
global birds
birds = 5000
print('В Техасе обитает', birds, 'птиц.')
def print_california():
print('В Калифорнии обитает', birds, 'птиц.')
print_texas()
print_california()
Результат:
В Техасе обитает 5000 птиц.
В Калифорнии обитает 5000 птиц.
⚠️ Используйте
global только при крайней необходимости.
Чаще всего лучше возвращать значения из функции с помощью return.