Форум программистов, компьютерный форум, киберфорум
Welemir1
Войти
Регистрация
Восстановить пароль
Рейтинг: 5.00. Голосов: 1.

Python для начинающих. LEGB-rule или как происходит поиск имени

Запись от Welemir1 размещена 31.05.2021 в 14:34

Короткое видео о LEGB-rule, аббревиатуре, в которой отражен порядок поиска имени переменной или функции в python.

Особенности:
1) сначала поиск идет в локальном пространстве имен, максимально близко к использованию имени и далее идет снизу-вверх, изнутри-наружу к глобальному пространству имен

2) после локального пространства имен интерпретатор посмотрит в enclosing, то есть в функцию, которая содержит текущую (если она есть) и далее проверит глобальное пространство имен

3) последним шагом будут проверены имена в модуле builtins (встроенные функции)

4) если на любом этапе имя найдено, то далее поиск не идет. Если все этапы неудачны то выбрасывается NameError

5) важно понимать что даже если мы используем встроенную функцию, типа max/min/sum/print, то интерпретатор сначала проведет поиск по всем скоупам. Вот почему крайне важно НИКОГДА не давать своим переменным, функциям, модулям имена встроенных функций или библиотек (самые частые фейлы это имена типа len, list, sum, json, dict)

Подробно:
1) "Learning Python", Fifth Edition Chapter 17 by Mark Lutz

2) https://docs.python.org/3.7/re... nd-binding

3) https://docs.python.org/3.7/tu... namespaces


Размещено в Без категории
Показов 476 Комментарии 0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.