Курс 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. Сложение матриц в NumPy
  2. Типы возвращаемых значений в Python
  3. Создание и использование ChainMap
  4. Метод ior для битовых операций
  5. Создание списка дат
  6. Работа с PosixPath() в Python
  7. Метод enumerate() в Python
  8. Метод count в Python: почему count(», ») возвращает 4?
  9. Удаление элемента из списка
  10. Оформление текста в консоли с TermColor
  11. Объединение итераторов
  12. Big O оптимизация
  13. Передача параметров в Python
  14. Поиск шаблона в строке
  15. Частичное применение функций в Python
  16. Обмен данными с asyncio.Queue
  17. Создание лямбда-функций
  18. Модуль xkcd: загрузка комиксов
  19. Сортировка списка по индексам
  20. Поиск анаграмм с Counter
  21. Запрос пароля с помощью getpass
  22. Выбор редактора кода.
  23. Управление User-Agent в Python
  24. Класс-оболочка для словарей
  25. Проверка подстроки в строке
  26. Метод rrshift для пользовательских объектов
  27. Импорт модулей и пакетов в Python
  28. Блок try-except-else
  29. Объединение словарей в Python 3.5+
  30. Инициализация переменных
  31. Работа с очередями в Python
  32. Метод __imod__ для Python
  33. Работа со строками
  34. Блок else в циклах Python
  35. Считывание бинарного файла в Python
  36. Реализация метода __abs__ в Python
  37. Отправка HTTP-запросов с User-Agent
  38. Основы работы с базами данных в Python
  39. Функции в одну строку
  40. Python-dateutil — работа с датами
  41. Оператор match в Python
  42. Тайное преобразование типа ключа
  43. Добавление элементов в список
  44. Конкатенация строк в Python
  45. Преобразование списка в словарь через генератор
  46. Удаление ключа из словаря
  47. Установка и использование Python-dateutil

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