Курс 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"

  1. Извлечение аудио из видео
  2. Генераторные выражения и islice.
  3. Хэш-функции и метод цепочек
  4. Именованные срезы в Python
  5. Магические методы в Python
  6. Печать списка с помощью метода join
  7. Методы __repr__ и __str__ в Python
  8. Принципы LSP и ISP в Python
  9. Форматирование вывода списков
  10. Декораторы в Python
  11. Форматирование строк с % в Python
  12. Работа со случайными элементами
  13. Solidity для DeFi Ethereum
  14. Оператор объединения словарей
  15. Фильтрация списков с itertools
  16. Чтение и запись TOML-конфигов
  17. Python и Юникод: работа с цифрами
  18. Ускорение выполнения кода в Python
  19. Применение функции map() с лямбда-функциями
  20. Оптимизация гиперпараметров в Python
  21. Измерение потребления памяти при сортировке
  22. Работа с GitHub в Telegram
  23. Big O оптимизация
  24. Сравнение def и lambda функций в Python
  25. Создание копии итератора
  26. Concrete Paths в Python
  27. Функции-генераторы в Python
  28. Переопределение метода __pow__
  29. Проверка строки на палиндром
  30. Удаление ключа из словаря
  31. Имена объектов в Python
  32. Создание словарей с defaultdict
  33. Бесконечные списки в Python
  34. Оператор Walrus в Python
  35. Pillow: работа с изображениями
  36. Загрузка постов Instagram
  37. Работа с необработанными строками
  38. Работа с прокси в Python
  39. Избегание изменяемых аргументов
  40. inspect в Python: анализ кода
  41. Измерение времени выполнения кода в Python
  42. Работа с базами данных SQLite
  43. Абстракции словарей и множеств в Python
  44. Цикл for в Python
  45. Распаковка аргументов в Python
  46. Создание виртуальной среды

Marketello читают маркетологи из крутых компаний