Курс Python → Область видимости переменных
Разработчики Python должны помнить, что выражение генератора имеет свою собственную область видимости, что означает, что переменные, объявленные внутри него, не будут доступны за его пределами. Это позволяет избежать конфликтов имен переменных и упрощает отладку кода. Например, если у вас есть выражение генератора внутри функции, то переменные, объявленные в нем, не будут пересекаться с переменными функции.
В Python 3.X также введено понимание списков собственной области видимости. Это означает, что переменные, объявленные внутри списка (например, при использовании list comprehension), будут видны только внутри этого списка и не будут конфликтовать с переменными во внешней области видимости. Это упрощает написание чистого и понятного кода.
Пример кода выражения генератора:
numbers = [1, 2, 3, 4, 5]
squared_numbers = (num ** 2 for num in numbers)
for square in squared_numbers:
print(square)
Пример кода списка собственной области видимости:
numbers = [1, 2, 3, 4, 5]
squared_numbers = [num ** 2 for num in numbers]
print(squared_numbers)
Использование собственной области видимости переменных в выражениях генераторов и списках позволяет писать более чистый и понятный код, избегая конфликтов имен переменных и улучшая структуру программы.
Другие уроки курса "Python"
- Извлечение аудио из видео
- Генераторные выражения и islice.
- Хэш-функции и метод цепочек
- Именованные срезы в Python
- Магические методы в Python
- Печать списка с помощью метода join
- Методы __repr__ и __str__ в Python
- Принципы LSP и ISP в Python
- Форматирование вывода списков
- Декораторы в Python
- Форматирование строк с % в Python
- Работа со случайными элементами
- Solidity для DeFi Ethereum
- Оператор объединения словарей
- Фильтрация списков с itertools
- Чтение и запись TOML-конфигов
- Python и Юникод: работа с цифрами
- Ускорение выполнения кода в Python
- Применение функции map() с лямбда-функциями
- Оптимизация гиперпараметров в Python
- Измерение потребления памяти при сортировке
- Работа с GitHub в Telegram
- Big O оптимизация
- Сравнение def и lambda функций в Python
- Создание копии итератора
- Concrete Paths в Python
- Функции-генераторы в Python
- Переопределение метода __pow__
- Проверка строки на палиндром
- Удаление ключа из словаря
- Имена объектов в Python
- Создание словарей с defaultdict
- Бесконечные списки в Python
- Оператор Walrus в Python
- Pillow: работа с изображениями
- Загрузка постов Instagram
- Работа с необработанными строками
- Работа с прокси в Python
- Избегание изменяемых аргументов
- inspect в Python: анализ кода
- Измерение времени выполнения кода в Python
- Работа с базами данных SQLite
- Абстракции словарей и множеств в Python
- Цикл for в Python
- Распаковка аргументов в Python
- Создание виртуальной среды















