Step 2 (S-100209)

From Stepik Wiki
Jump to: navigation, search

Step on Stepik: https://stepik.org/lesson/24466/step/2

Step 2 (S-100209) 1.png

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


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


Step 2 (S-100209) 2.png

[00:34 - 00:52] функции фибоначчи числа 30 in занимает некоторое время таким образом попробовал импортировать наш модуль фила из нашего файла импорта лампочка pi то когда мы запустим данный код мы сначала видим что у нас импортировался exceptions потом некоторое время замело


Step 2 (S-100209) 3.png

Step 2 (S-100209) 4.png

[00:52 - 01:08] подсчет 31 числа фибоначчи с тему или холостым нам очень хочется мучиться разграничивает тот который мы будем исполнять по импортер от того года который нам исполнения принятых не стоило для этого внутри модуля на всегда доступны глобальной именным


Step 2 (S-100209) 5.png

[01:08 - 01:23] за что бы к этому меня протеста давайте попробуем в начале нашего файлов точка pi распечатать его на экране именным начинается с 2 нижних подчеркиваний языка все также 2 нижними подчеркиваниями когда мы запустим данный клад мы видим текущее имя нашего модуля


Step 2 (S-100209) 6.png

[01:23 - 01:41] то есть когда мы запускаем наш модуль с помощью именно интерпретатора то наш модуль носит имя мы ответим нашими попробовал импортировать то есть допустим здесь мы оставим только импорт точку и запустить данный год то имя модуля внутри модуля feat изменится само имя модуля


Step 2 (S-100209) 7.png

Step 2 (S-100209) 8.png

Step 2 (S-100209) 9.png

Step 2 (S-100209) 10.png

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


[01:58 - 02:15] если нас импортировать мы просто хотели бы импортировать функция fib это давайте сравним текущей на мотре с именем моим я совсем не накроем является то выполните следующие инструкции а если вы не является то мы не будем выполнять


[02:15 - 02:30] давайте вспомним следующий год когда мы его использовали сможем убедиться в том что имя текущего года действительно моим а затем в им значений 31 числа фибоначчи если же мы исполним импорт hip из нашего другого файла import lesson


Step 2 (S-100209) 11.png

Step 2 (S-100209) 12.png

[02:30 - 02:48] в том что у нас нет никакого вывода при импорте однако мы всегда можем убедиться в том что мы импортировали функцию давайте просто выйдем значение 5 числа фибоначчи таким образом если вы пишете программу на языке python в которой есть интересно и полезно деталей которые хотелось бы всем переиспользовать импортировать


Step 2 (S-100209) 13.png

[02:48 - 03:07] составить всю программу так чтобы эти интересные детали оказались выше нашего условного оператора где мы сравниваем имя нашего модуля с м а тот код который оказался внутри этого условного оператора при импорте исполняться не будет таким образом в нашем примере при импортировании исполнится только тот который находится выше условного оператора if


[03:07 - 03:20] потому что когда мы импортируем имя текущего модуля будет равно то есть такие фильмы а тот момент когда мы его используем в качестве скрипта обязательно зайдет внутрь потому что имя модуля будет равно имени марин


Step 2 (S-100209) 14.png