Step 2 (S-97847)

From Stepik Wiki
Jump to: navigation, search

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

Step 2 (S-97847) 1.png

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


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


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


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


[01:06 - 01:25] только символ нижнего подчеркивания и при этом не могут начинаться с цифры поэтому в примере function n является допустимым именем переменной икс также является допустимой именами переменных поэтому затянуться 31 r это было недопустимое имя для переменной


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


[01:42 - 01:58] допустим это вы становитесь этой инструкции и здесь интерпретатор нашел определения функции определения функции языке python не исполняются построчно оно исполняется целиком поэтому сначала начинает отчитывать того места где функция кончается


[01:58 - 02:15] то есть в нашем случае это вот это строка потому что здесь как раз к нет нашего отступа нет отступа значит закончилось все функции и лишь затем когда был зачитан и выполнен весь код определения функции будет создан объект для функции да функции языке python также являются объектами


[02:15 - 02:33] поэтому говорится в оперативной памяти на создастся объект и переменная function будет ссылаться на этот объект а важно понимать что в действительности переменной ссылаясь на объект


[02:33 - 02:50] в этом если это вам исполнить весь этот код а также вывести type function name и вывести вентилятор оформленный вылез там что он это будет фаршем то есть функция а индикатор будет действительности какое число


Step 2 (S-97847) 2.png

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


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


Step 2 (S-97847) 3.png

[03:24 - 03:41] что самое главное не себе тело функции которого год затем исполнена поэтому что происходит когда мы исполним функцию и центра торчит в коде например а строку икс равно function name 2 8 кажется всего он смотрит на переменного и на какой где она ссылается


Step 2 (S-97847) 4.png

[03:41 - 03:58] он говорит что function name ссылается на объект вот такой вот а и он понимает что function name принимает аргумент аргумент 1 аргумент 2 поэтому до исполнения тело функции всегда происходит инициализация аргументов


[03:58 - 04:14] те аргументы которые мы передаем когда вызываем функцию в нашем случае это объекты 2 и 8 вот этот и этот они также в памяти и до любого исполнения кода то есть в этом интересоваться аргумента вот здесь


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


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


[04:47 - 05:03] а затем он увидит инструкция return и сумме аргументов 1 2 интерпретатор уже знаешь что аргумент 1 аргумент ссылаются на объект 2 и 8 соответственно поэтому несложно понять что суммой данных аргументов будет 10


[05:03 - 05:20] в памяти если еще не существовало создателем десятки и сумма будет ссылаться на этот объект инструкция return же в свою очередь говорит интерпретатору о том что возникла ты объект правой части


[05:20 - 05:38] и поставь его в то место где меня вызвали то есть возьми ссылку на объект 10 и это и будет результатам работы функции то есть когда мы здесь вызывали икс равно function 2 8 когда мы вызываем function 2 8 результатом


[05:38 - 05:53] будет не что иное как ссылка на 10 этого нет ничего удивительного в том что наша функция которая всего лишь складывает 2 и 8 результате местном 10 и икс после присваивания будет равна 10


Step 2 (S-97847) 5.png

[05:53 - 06:10] важно понимать что каждый раз когда мы вызываем функцию мы инициализируем аргументы за это мы рассмотрим повторный вызов рассмотрим вызов функции писания его переменной игрек равно function name от 20 x 21 как мы знаем их ссылаются на десятку кабель


[06:10 - 06:28] результат вызывал идущего 21 тоже некоторые константа в памяти которым явно передаем и когда мы возьмем функцию нас начало в разделе инициализация аргументов то есть аргумент 1 будет ссылаться на десятку аргумент 20 20 21 затем


[06:28 - 06:44] произойдет служения мы получим алименты если бы не было в памяти и наша сумма будет ссылаться на него таким образом результат вызова функции также ссылался на 31 и


[06:44 - 06:52] как результаты куратора присваивание и это тоже будет создано 31 и поэтому когда мы распечатать ничего удивительно что мы увидим назначения 31