Курс 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"
- Оформление кода на Python
- Работа с YAML в Python
- Метод __iand__ для пользовательских классов
- Генератор бросков кубиков
- Оптимизация памяти с помощью __slots__
- Оператор in для Python
- Работа с WindowsPath()
- Работа с итераторами через срезы
- Метод init в Python
- Defaultdict в Python
- Поиск кода
- Lambda-функция в Python: использование с map() и sum()
- Принципы SRP и OCP
- Метод Event.wait() в Python
- Список импортированных модулей в Python
- Экранирование символов в Python
- UserList в Python: Описание и примеры использования
- 9 уловок для чистого кода
- Именованные срезы в Python
- Обработка аргументов Python
- Добавление элементов в список: append() vs extend()
- Обмен переменными в Jupyter
- Проверка на палиндром
- Combobox в Tkinter
- Установка переменной среды в Python
- Удаление ключей из словаря
- Оператор zip в Python
- Отрицательные индексы списков
- Сглаживание списка
- Фильтры Pillow: NEAREST, BILINEAR, BICUBIC
- Эффективная конкатенация строк с использованием join()
- Python OrderedDict и fromkeys() — работа с словарями
- Установка и использование Logzero
- Управление импортом в Python
- Раздувающийся словарь в Python
- Копирование объектов в Python
- Работа с исключениями в Python
- Подписка на Kaspersky Team
- Python: Фильтрация списков с помощью filter()
- Нахождение отличий в списках
- Подсказки типов в Python
- Метод ior для битовых операций
- Логирование с Logzero
- Модуль antigravity: генерация координат
- Удаление и повторная вставка ключа в OrderedDict
- Генераторы в Python
- Генераторы словарей и множеств
- Умножение строк и списков















