Skip to content

Latest commit

 

History

History
61 lines (47 loc) · 2.64 KB

Scope.md

File metadata and controls

61 lines (47 loc) · 2.64 KB

Области видимости для переменных в Python

Область видимости переменной — это та часть кода, где переменная доступна, открыта и видима.

Существует четыре типа области видимости для переменных Python:

  • Local (локальная область видимости)
  • Enclosing (охватывающая)
  • (глобальная)
  • Built-in (встроенная)
  1. Local - локальная область видимости, определяется прямиком внутри своего блока
var = "Глобальная переменная"

    def func():
        var = "Локальная переменная"
        print(var)

    print(var)
    func()
  1. Enclosing - позволяет выводить из local видимости на более верхний уровень, но не глобальный уровень, к примеру есть функция в которой определена еще одна функция, ключ слово nonlocal позволяет внутренней функции выйти на уровень видимости более высокой функции, но она еще не является глобальной
def func1():
        name = "Первый уровень"
        print(name)

        def func2():
            nonlocal name
            name = "Второй уровень"

        func2()
        print(name)

    func1()
  1. Global - глобальная область определяется на верхнем уровне модуля, и от туда может быть доступна в локальной области при помощи спец. слова global после чего значение глобальной переменной можно изменять внутри локальной области видимости
 var = "Global"
   
   def def_1():
       global var
       print(var)
   
   print(var)
   def_1()
   print(var)
  1. Built-in - встроенная область видимости, которая позволяет использовать стандартный набор классов, эту область еще можно прировнять к глобальной области. Сюда входят такие вещи как функция open() которые уже встроены в Python, и которые можно использовать сразу по дефолту