Перейти к содержимому

Пост канала

Python Разработка | Web Backend, Парсинг & Telegram Bots. Пайтон программирование с нуля. Django, FastAPI и SQL. Уроки для начинающих и IT карьера. Coding.
  1. Когда в Python используется переменная, сначала она ищется в текущей области видимости. Если такая переменная не найдена, поиск продолжается во вложенной области. Это повторяется до тех пор, пока не будет достигнуто глобальное пространство имен. x = 1 def scope(): x = 2 def inner_scope(): print(x) # выводит 2 inner_scope() scope() Однако присваивание переменной работает иначе. Новая переменная всегда создается в текущей области видимости, если не указано global или nonlocal: x = 1 def scope(): x = 2 def inner_scope(): x = 3 print(x) # выводит 3 inner_scope() print(x) # выводит 2 scope() print(x) # выводит 1 global позволяет использовать переменные из глобального пространства имен, а nonlocal ищет переменную в ближайшей окружающей области видимости. Сравните: x = 1 def scope(): x = 2 def inner_scope(): global x x = 3 print(x) # выводит 3 inner_scope() print(x) # выводит 2 scope() print(x) # выводит 3 x = 1 def scope(): x = 2 def inner_scope(): nonlocal x x = 3 print(x) # выводит 3 inner_scope() print(x) # выводит 3 scope() print(x) # выводит 1 👉 @BookPython

    Открыть в MAX
    Просмотры
    1 622
    ER
    0,8%
    Реакции
    13