Step 4 (S-102200)

From Stepik Wiki
Jump to: navigation, search

Step on Stepik: https://stepik.org/lesson/24460/step/4

Step 4 (S-102200) 1.png

[00:00 - 00:16] совсем рядом с определением пространств имен находится понятие областей видимости область видимости таки текстовых фрагментов вашей программы в которых локальной на экспрессе который вы создаете доступен напрямую на примере например области видимости функционал будет тело функции б


[00:16 - 00:32] scope scope это и есть наших область видимости тянущих функциональным такое короткое нас будет область видимости функции а и настойчивость глобальной области видимости это глазков


[00:32 - 00:50] прежде всего важно понимать что области видимости они статичны не зависит лишь от кода который вы написали никак не зависит от самого исполнения однако в процессе исполнения нашего кода областям видимости соответствует локальные бои с которым создам иллюзию функции допустим глобального скоупа средства


[00:50 - 01:07] глобальный неймспейс как ни удивительно а области видимости нашей функции да будет локальный на из то есть функция так когда мы ее вызовом а область видимости функционал будет соответствовать локальные бои с функцией а когда мы ее вызове таким образом можно покрыть весь наш код областями видимости 1 из которых


[01:07 - 01:22] вот включает в себя другие и такое потрясение как нибудь зависит от самого исполнения нашего кода то есть посмотрев наш кот можем точно понять что носить global scope он включает в себя


[01:22 - 01:41] который включает в себя оскол 1 когда мы находимся в процессе исполнения кода например какой нибудь функции икс мы всегда можем разбить все скобка на 4 категории 1 категория это локальный скобку которой по сути есть локальные бои с функцией икс


[01:41 - 02:00] 2 группа scope of это так называемая закрывающей скобкой или те слова в которых мы находимся до глобального скоупа 3 сохнут с kopete глобальный скоуп и 4 скол это скобка 0 соответствует на импосибл тынц таким образом для поиска перемены внутри какой либо функции правила


[02:00 - 02:19] л е г то есть локал enclosing global times сначала мы будем искать в локальном сколоты затем будем искать закрывающих скобок зачем мы пойдем поищем в глобальном скопе а затем мы поищем наше имя вбил tense


[02:19 - 02:33] важно понимать что поиск какого либо имени и объекты которые соответствуют мы будем делать список которые соответствуют данным словом а не с их скобках потому что слово это всего лишь в какой то кусок кода


[02:33 - 02:52] таким образом в нашем коде когда интерпретатор захочет исполнит куприн икс внутри функции вызова функций а который находится внутри вызвал функции здесь произнес следующее сначала он возьмет попытается на теле находится имя print посмотреть его нет и которая является единственным


[02:52 - 03:10] enclosing scope его тоже нет в global его тоже нет и он идет из центра сам он проделает для икса он пытается понять что же такое имя икс он посмотреть в локальном скобка вызов функции а там были найдет но нет в скайпе


[03:10 - 03:26] функции б вы можете заметить что порядок обхода не spacer для поиска и не приняты поиска имени икс в данном примере абсолютно эквивалентен обходы локальные функции которые лежат на стеке в данный момент однако очень важно понимать что это не всегда так


Step 4 (S-102200) 2.png

[03:26 - 03:43] давайте рассмотрим следующий пример global на стенде функцию поэтому их скобка находится внутри нашего скобка global тогда когда мы вызовем вызов функции б и тело функции это вызов функции а


[03:43 - 04:00] исполнять функцию а вот мы дойдем до конструкцией икс мы сначала посмотрим внутри на экспозиции который ассоциировался с копом функциональность лаконичность то есть он функционал там идет глобальный меня спайсом вы тоже не найдем


[04:00 - 04:16] хотя мы пойдем в написать где мы найдем функцию print мы пойдем по такому же пути когда попробуем найти имя икс да и функции а у нас не объявлено имя икс поэтому мы пойдем в global какое имя икс поэтому


[04:16 - 04:31] икс не найдем поэтому наши вы за функционирования р несмотря на то что внутри функции б мы объявили имя икс если бы просмотреть прошлое у нас все было окей потому что функцию автоопределения внутри функции б


Step 4 (S-102200) 3.png

[04:31 - 04:48] таким образом scope функции оказался внутри скобка функционал б и поэтому когда мы шли из other buildings мы заходили скол функции б однако если мы глобально спасибо переменной икс равно например 1 системы вызвали функцию да то все таки нашли этот объясните им икс внутри функции а


Step 4 (S-102200) 4.png

[04:48 - 05:08] сначала заглянули в на экспресс который соответствует локальном функции а там вы не нашли с тем чтобы локальным с пояснением и 11 вывели его на экране несмотря на то что внутри функции икс равен 31 она кажется самым правильным решением таких проблем является конечно же кривляния аргументов у функций


[05:08 - 05:22] чтобы не париться по поводу того как он экспрессом что будем доставать проще всего было объявить аргумент x функционал не выводить на экран а затем вот здесь приспичит напечатай сообщение ответьте 1 передать икс явно аргументом


[05:22 - 05:42] таким образом языке python перемен осуществляется по пространству имен которые связаны с соответствующими им областям видимости области видимости мы перебираем в следующем порядке сначала конечно же перебирая в локальной области видимости которые ставятся в локальным спать затем enclosing искать закрывающая и включающие нас в области видимости


[05:42 - 05:52] котором встречается также экспозиция техники которую мы создали в момент вызова тема перебираем глобальной на экспресс затем перебирается на экспресс buildings