Что такое def питон

Функции в Python

Функции — важный компонент любого языка, и Python не является исключением. При написании любого крупного проекта невозможно обойтись без функций, поэтому каждый программист должен знать, как работать с ними.

Что такое функция

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

Функция может использоваться для обработки данных, она получает на вход значения, обрабатывает его и возвращает результат в программу. Также она может не возвращать значение, а выводить его на экран или записывать в файл.

Объявление

Объявляя функцию, нужно следовать определенным правилам:

Синтаксис объявления

Параметры (аргументы) нужно передавать в том порядке, в котором они определены в круглых скобках.

Пример кода

Функция складывает два числа, переданные в качестве аргументов. Если один или оба аргумента не были переданы, используются значения по умолчанию.

Вызов

После определения функции её можно вызвать в любой точке скрипта, как в теле самого скрипта, так и в теле другой функции:

Значение функции можно сразу передать в переменную или в другую функцию:

Необязательные параметры

При описании функции в Python 3 аргументы, которым задаются начальные значения, являются необязательными. Вначале должны описываться обязательные параметры и только после них необязательные.

При вызове функции нам не обязательно указывать значения необязательных параметров. Если мы хотим изменить значение аргумента, не меняя начальные значения других аргументов, можно обращаться к нему по ключу.

Вывод будет следующим:

Функция с переменным числом аргументов

Часто возникает необходимость создать такую функцию, которая может принимать разное количество аргументов. Это можно реализовать с помощью передачи списка или массива, однако Python позволяет использоваться более удобный подход (также с использованием списка).

Для того чтобы функция могла принять переменное количество аргументов, перед именем аргумента ставится символ » * «. Когда программист передаёт аргументы, они записываются в кортеж, имя которого соответствует имени аргумента:

Вместо одного символа звёздочки можно использовать два, тогда аргументы будут помещаться не в список, а в словарь:

Анонимные функции

Это особый вид функций, которые объявляются с помощью ключевого слова lambda вместо def :

Лямбда функции принимают любое количество аргументов, но не могут содержать несколько выражений и всегда возвращают только одно значение.

В программировании на Python можно обойтись без анонимных функций, которые по сути являются обычными, но без имени и с ограничением в одно выражение. Однако их использование в нужных местах упрощает написание и восприятие кода. Например, в программе калькулятор мы с её помощью сделали обработчики нажатия кнопок.

Синтаксис

Возврат значений

С помощью оператора return из функции можно вернуть одно или несколько значений. Возвращаемым объектом может быть: число, строка, None.

Чтобы вернуть несколько значений, нужно написать их через запятую. Python позволяет вернуть из функции список или другой контейнер: достаточно указать после ключевого слова return имя контейнера.

Вот пример когда возвращается список:

А это пример того, как функция в Python 3 возвращает несколько значений. Так как переменные перечислены через запятую, то они образуют список. Эти значения можно присвоить сразу нескольким переменным, как это показано в следующем примере:

Рекурсия

Рекурсией называется процесс, когда функция вызывает саму себя. Её можно использовать вместо циклов, например, для задачи по нахождению факториала.

Рекурсию рекомендуется использовать только там, где это действительно необходимо. Интерпретатор Python автоматически выделяет память для выполняющейся функции, если вызовов самой себя будет слишком много, это приведёт к переполнению стека и аварийному завершению программы. Следующий код вызовет исключение «RecursionError», которая показывает, что превышен максимальный лимит рекурсии.

Узнать максимальный лимит и его изменить можно с помощью getrecursionlimit() и setrecursionlimit(предел) из библиотеки sys.

Один из примеров применения рекурсии — это расчёт чисел Фибоначчи.

Пустая функция

Такие функции могут использоваться для различных специфичных задач, например, при работе с классами, асинхронной отправкой форм.

Области видимости

Область видимости — важная составляющая любого языка программирования. С её помощью в одном модуле можно использовать одно и то же имя переменной несколько раз.

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

В Python существует две области видимости:

Важно понимать, из локальной области видимости можно обратить к переменным, находящимся в глобальной, но не наоборот.

Подробнее про области видимости можно прочитать в отдельной статье на сайте.

Основные встроенные функции в Python

Python предоставляет программисту все необходимые основные функции для работы, кроме того, используя дополнительные модули (подключая разные библиотеки), можно найти уже реализованные методы для практически любой задачи.

Источник

Функции: объявление и вызов

Вот мы с вами и подошли к одному из фундаментальных моментов в изучении языка Python – функциям. Что это такое? Смотрите. Например, уже знакомая вам функция

выводит сообщения в консоль. Фактически же при ее вызове выполняется определенный фрагмент программы, результатом которого и является вывод информации в заданном виде. И это очень удобно. Благодаря наличию таких функций нам не нужно каждый раз писать дублирующие инструкции для выполнения типовых операций. Собственно, это главное предназначение функций – многократное выполнение определенного фрагмента программы.

Язык Python позволяет программисту создавать свои собственные функции. Для этого используется следующий синтаксис:

def ([список аргументов]):
оператор 1
оператор 2

оператор N

Здесь имя функции придумывается программистом подобно именам переменных и, так как функция – это определенное действие, то ее имя следует выбирать как глагол, например:

go, show, get, set и т.п.

Далее, идет набор операторов, которые образуют тело функции. Именно они начинают выполнятся при ее вызове.

Давайте зададим простейшую функцию, которая будет выводить «hello» в консоль:

Смотрите, мы здесь придумали имя функции «sayHello», записали пустые круглые скобки без аргументов и через двоеточие определили тело функции в виде конструкции print(«hello»). Но это лишь определение функции. Самого вызова здесь еще нет и если запустить программу, то ничего не произойдет.

Чтобы вызвать эту функцию, нужно указать ее имя и в конце обязательно поставить круглые скобки даже если мы не передаем ей никаких аргументов:

Эти круглые скобки являются оператором вызова функции с указанным именем. Теперь, при запуске программы в консоли появится сообщение «hello».

Имя функции без круглых скобок – это фактически ссылка на функцию:

то есть, ссылка на специальный объект, представляющий ту или иную функцию. А раз это ссылка, то мы можем выполнить такую операцию:

тем самым определить ее синоним и вызвать ее уже через это второе имя:

Как мы говорили в самом начале, функции, как правило, создаются для их многократного вызова. И действительно, мы теперь, можем ее вызывать в любом месте нашей программы необходимое число раз, например, так:

Здесь будет уже два вызова этой функции. И так далее. Причем, обратите внимание, мы вызываем функцию только после ее определения. То есть, если записать ее вызвать в самом начале программы, то возникнет ошибка, т.к. данная функция не была определена. Это вроде как:

«сначала нужно испечь пирог и только потом можно его есть.»

Также и с функциями: мы их сначала определяем и только потом можем вызывать. Поэтому определение функций обычно идет в самом начале, а потом уже их вызовы в основной программе.

Если нужно определить еще одну функцию, то мы ее можем записать после первой:

Имена функций должны быть уникальными (также как и имена переменных), поэтому я назвал ее myAbs, т.к. функция abs уже существует. И предполагаю, что она будет вычислять модуль переданного ей числа. Соответственно, в круглых скобках обозначаю этот аргумент. Если теперь мы ее вызовем:

то увидим значение None. Это произошло потому, что функция myAbs явно не возвращает никакого значения. По идее, мы ожидаем возврата переменной x. Для этого нужно записать оператор return, после которого через пробел указываем возвращаемую величину:

Если нужно создать функцию, принимающую два аргумента, например, для вычисления площади прямоугольника, то это делается так:

То есть, аргументы перечисляются через запятую, а тело функции состоит всего из одного оператора return, в котором сразу выполняются необходимые вычисления.

Вызовем эту функцию:

И увидим результат ее работы – значение 31,0. При этом, на первое значение 10 ссылается первый аргумент w, а на второе 5.5 – второй аргумент h. Вот так можно определять различное число аргументов у функций.

Далее, при вызове функций мы должны им передавать ровно столько параметров, сколько указано в их определении. Например, вот такие вызовы работать не будут:

Здесь указано или слишком много, или слишком мало фактических параметров.

Однако у любой функции можно добавить формальные параметры со значениями по умолчанию:

И теперь, можно вызвать эту функцию так:

Смотрите, если формальный параметр не указан, то берется его значение по умолчанию. Если же мы его явно задаем, то берется переданное значение. Здесь нужно помнить только одно правило: формальные аргументы должны быть записаны последними в списке аргументов функции. То есть, вот такая запись:

приведет к синтаксической ошибке.

Теперь, давайте добавим этой функции еще один вот такой формальный параметр:

И функция будет выводить сообщение в формате: «Message»+sep+msg+end. Вызвать эту функцию мы можем таким образом:

и каждому параметру здесь будет соответствовать свое значение в соответствии с указанным порядком. А можно ли вызвать эту функцию, указав только первый и последний аргумент? Оказывается да, Python позволяет это делать. Вот таким образом:

Мы здесь вторым аргументом явно указываем имя формального параметра и присваиваем ему желаемое значение. В результате аргументы msg и sep будут принимать переданные значения, а аргумент end – значение по умолчанию. Это называется именованные параметры, когда мы указываем не просто значение, но еще и имя параметра.

Если нам требуется сразу вернуть несколько значений, то это можно сделать так. Предположим наша функция будет сразу определять и периметр и площадь прямоугольника:

И, далее, вызываем ее:

получаем результат в виде кортежа из двух чисел. Или, так:

Аналогичным образом можно возвращать и списки и словари и вообще любые типы данных.

Далее, в теле функции можно записывать самые разные конструкции языка Python. Например, для возведения числа в целую степень, можно определить такую функцию:

И, затем, вызвать ее:

Интересной особенностью Python в определении функций является возможность переопределять уже существующие функции. Например, у нас задана вот такая функция:

Тогда ниже мы можем ее переопределить, если укажем то же самое имя:

Теперь, при ее вызове:

увидим выполнение последнего, переопределенного варианта. Если дальше ее переопределить вот так:

то все равно будет доступна только одна такая функция, но теперь уже с одним обязательным аргументом:

Когда это может пригодиться на практике? Например, если мы хотим определить некоторую функцию в зависимости от условия:

Здесь при значении переменной TYPE_FUNC равной True будет определен первый вариант функции, а иначе – второй вариант. Иногда это бывает полезно.

Элементы функционального подохда к программированию

При написании программ приветствуется такой подход, который называется функциональным программированием. Продемонстрирую его на следующем примере. Предположим, нам нужна функция, которая находит максимальное значение из двух чисел:

И вызвать мы ее можем так:

Затем, нам потребовалась функция, которая бы находила максимальное из трех чисел. Как ее можно реализовать? Используя идею функционального программирования, это можно сделать следующим образом:

Смотрите, здесь оператор return возвращает значение, которое возвращает функция max2. Но, прежде чем она будет выполнена, вызовется другая функция max2, которая определит максимальное среди чисел b и c. То есть, прежде чем вызвать первую функцию max2 необходимо вычислить ее параметры: первый просто берется их x, а второй вычисляется вложенной функцией max2. Вот так это работает и вот что из себя представляет элемент функционального подхода к программированию.

Причем, благодаря гибкости языка Python, мы можем вызвать эту функцию и для нахождения максимальной строки:

так как строки могут спокойно сравниваться между собой. И вообще, любые величины, которые можно сравнивать на больше и меньше, можно подставлять в качестве аргументов функции max3 и max2.

Задания для самоподготовки

1. Задайте и вызовите функцию, которая вычисляет площадь прямоугольника.

2. Необходимо создать функцию, которая в зависимости от значения формального параметра type будет вычислять или площадь или периметр прямоугольника.

3. Написать функцию поиска максимального значения из переданного ей списка значений.

4. Написать функцию вычисления произведения значений элементов переданного ей списка.

Видео по теме

Что такое def питон. Смотреть фото Что такое def питон. Смотреть картинку Что такое def питон. Картинка про Что такое def питон. Фото Что такое def питон

#1. Первое знакомство с Python Установка на компьютер

Что такое def питон. Смотреть фото Что такое def питон. Смотреть картинку Что такое def питон. Картинка про Что такое def питон. Фото Что такое def питон

#2. Варианты исполнения команд. Переходим в PyCharm

Что такое def питон. Смотреть фото Что такое def питон. Смотреть картинку Что такое def питон. Картинка про Что такое def питон. Фото Что такое def питон

#3. Переменные, оператор присваивания, функции type и id

Что такое def питон. Смотреть фото Что такое def питон. Смотреть картинку Что такое def питон. Картинка про Что такое def питон. Фото Что такое def питон

#4. Числовые типы, арифметические операции

Что такое def питон. Смотреть фото Что такое def питон. Смотреть картинку Что такое def питон. Картинка про Что такое def питон. Фото Что такое def питон

#5. Математические функции и работа с модулем math

Что такое def питон. Смотреть фото Что такое def питон. Смотреть картинку Что такое def питон. Картинка про Что такое def питон. Фото Что такое def питон

#6. Функции print() и input(). Преобразование строк в числа int() и float()

Что такое def питон. Смотреть фото Что такое def питон. Смотреть картинку Что такое def питон. Картинка про Что такое def питон. Фото Что такое def питон

#7. Логический тип bool. Операторы сравнения и операторы and, or, not

Что такое def питон. Смотреть фото Что такое def питон. Смотреть картинку Что такое def питон. Картинка про Что такое def питон. Фото Что такое def питон

#8. Введение в строки. Базовые операции над строками

Что такое def питон. Смотреть фото Что такое def питон. Смотреть картинку Что такое def питон. Картинка про Что такое def питон. Фото Что такое def питон

#9. Знакомство с индексами и срезами строк

Что такое def питон. Смотреть фото Что такое def питон. Смотреть картинку Что такое def питон. Картинка про Что такое def питон. Фото Что такое def питон

#10. Основные методы строк

Что такое def питон. Смотреть фото Что такое def питон. Смотреть картинку Что такое def питон. Картинка про Что такое def питон. Фото Что такое def питон

#11. Спецсимволы, экранирование символов, row-строки

Что такое def питон. Смотреть фото Что такое def питон. Смотреть картинку Что такое def питон. Картинка про Что такое def питон. Фото Что такое def питон

#12. Форматирование строк: метод format и F-строки

Что такое def питон. Смотреть фото Что такое def питон. Смотреть картинку Что такое def питон. Картинка про Что такое def питон. Фото Что такое def питон

Что такое def питон. Смотреть фото Что такое def питон. Смотреть картинку Что такое def питон. Картинка про Что такое def питон. Фото Что такое def питон

#14. Срезы списков и сравнение списков

Что такое def питон. Смотреть фото Что такое def питон. Смотреть картинку Что такое def питон. Картинка про Что такое def питон. Фото Что такое def питон

#15. Основные методы списков

Что такое def питон. Смотреть фото Что такое def питон. Смотреть картинку Что такое def питон. Картинка про Что такое def питон. Фото Что такое def питон

#16. Вложенные списки, многомерные списки

Что такое def питон. Смотреть фото Что такое def питон. Смотреть картинку Что такое def питон. Картинка про Что такое def питон. Фото Что такое def питон

#17. Условный оператор if. Конструкция if-else

Что такое def питон. Смотреть фото Что такое def питон. Смотреть картинку Что такое def питон. Картинка про Что такое def питон. Фото Что такое def питон

#18. Вложенные условия и множественный выбор. Конструкция if-elif-else

Что такое def питон. Смотреть фото Что такое def питон. Смотреть картинку Что такое def питон. Картинка про Что такое def питон. Фото Что такое def питон

#19. Тернарный условный оператор. Вложенное тернарное условие

Что такое def питон. Смотреть фото Что такое def питон. Смотреть картинку Что такое def питон. Картинка про Что такое def питон. Фото Что такое def питон

#20. Оператор цикла while

Что такое def питон. Смотреть фото Что такое def питон. Смотреть картинку Что такое def питон. Картинка про Что такое def питон. Фото Что такое def питон

#21. Операторы циклов break, continue и else

Что такое def питон. Смотреть фото Что такое def питон. Смотреть картинку Что такое def питон. Картинка про Что такое def питон. Фото Что такое def питон

#22. Оператор цикла for. Функция range()

Что такое def питон. Смотреть фото Что такое def питон. Смотреть картинку Что такое def питон. Картинка про Что такое def питон. Фото Что такое def питон

#23. Примеры работы оператора цикла for. Функция enumerate()

Что такое def питон. Смотреть фото Что такое def питон. Смотреть картинку Что такое def питон. Картинка про Что такое def питон. Фото Что такое def питон

#24. Итератор и итерируемые объекты. Функции iter() и next()

Что такое def питон. Смотреть фото Что такое def питон. Смотреть картинку Что такое def питон. Картинка про Что такое def питон. Фото Что такое def питон

#25. Вложенные циклы. Примеры задач с вложенными циклами

Что такое def питон. Смотреть фото Что такое def питон. Смотреть картинку Что такое def питон. Картинка про Что такое def питон. Фото Что такое def питон

#26. Треугольник Паскаля как пример работы вложенных циклов

Что такое def питон. Смотреть фото Что такое def питон. Смотреть картинку Что такое def питон. Картинка про Что такое def питон. Фото Что такое def питон

#27. Генераторы списков (List comprehensions)

Что такое def питон. Смотреть фото Что такое def питон. Смотреть картинку Что такое def питон. Картинка про Что такое def питон. Фото Что такое def питон

#28. Вложенные генераторы списков

Что такое def питон. Смотреть фото Что такое def питон. Смотреть картинку Что такое def питон. Картинка про Что такое def питон. Фото Что такое def питон

#29. Введение в словари (dict). Базовые операции над словарями

Что такое def питон. Смотреть фото Что такое def питон. Смотреть картинку Что такое def питон. Картинка про Что такое def питон. Фото Что такое def питон

#30. Методы словаря, перебор элементов словаря в цикле

Что такое def питон. Смотреть фото Что такое def питон. Смотреть картинку Что такое def питон. Картинка про Что такое def питон. Фото Что такое def питон

#31. Кортежи (tuple) и их методы

Что такое def питон. Смотреть фото Что такое def питон. Смотреть картинку Что такое def питон. Картинка про Что такое def питон. Фото Что такое def питон

#32. Множества (set) и их методы

Что такое def питон. Смотреть фото Что такое def питон. Смотреть картинку Что такое def питон. Картинка про Что такое def питон. Фото Что такое def питон

#33. Операции над множествами, сравнение множеств

Что такое def питон. Смотреть фото Что такое def питон. Смотреть картинку Что такое def питон. Картинка про Что такое def питон. Фото Что такое def питон

#34. Генераторы множеств и генераторы словарей

Что такое def питон. Смотреть фото Что такое def питон. Смотреть картинку Что такое def питон. Картинка про Что такое def питон. Фото Что такое def питон

#35. Функции: первое знакомство, определение def и их вызов

Что такое def питон. Смотреть фото Что такое def питон. Смотреть картинку Что такое def питон. Картинка про Что такое def питон. Фото Что такое def питон

#36. Оператор return в функциях. Функциональное программирование

Что такое def питон. Смотреть фото Что такое def питон. Смотреть картинку Что такое def питон. Картинка про Что такое def питон. Фото Что такое def питон

#37. Алгоритм Евклида для нахождения НОД

Что такое def питон. Смотреть фото Что такое def питон. Смотреть картинку Что такое def питон. Картинка про Что такое def питон. Фото Что такое def питон

#38. Именованные аргументы. Фактические и формальные параметры

Что такое def питон. Смотреть фото Что такое def питон. Смотреть картинку Что такое def питон. Картинка про Что такое def питон. Фото Что такое def питон

#39. Функции с произвольным числом параметров *args и **kwargs

Что такое def питон. Смотреть фото Что такое def питон. Смотреть картинку Что такое def питон. Картинка про Что такое def питон. Фото Что такое def питон

#40. Операторы * и ** для упаковки и распаковки коллекций

Что такое def питон. Смотреть фото Что такое def питон. Смотреть картинку Что такое def питон. Картинка про Что такое def питон. Фото Что такое def питон

#41. Рекурсивные функции

Что такое def питон. Смотреть фото Что такое def питон. Смотреть картинку Что такое def питон. Картинка про Что такое def питон. Фото Что такое def питон

#42. Анонимные (lambda) функции

Что такое def питон. Смотреть фото Что такое def питон. Смотреть картинку Что такое def питон. Картинка про Что такое def питон. Фото Что такое def питон

#43. Области видимости переменных. Ключевые слова global и nonlocal

Что такое def питон. Смотреть фото Что такое def питон. Смотреть картинку Что такое def питон. Картинка про Что такое def питон. Фото Что такое def питон

#44. Замыкания в Python

Что такое def питон. Смотреть фото Что такое def питон. Смотреть картинку Что такое def питон. Картинка про Что такое def питон. Фото Что такое def питон

#45. Введение в декораторы функций

Что такое def питон. Смотреть фото Что такое def питон. Смотреть картинку Что такое def питон. Картинка про Что такое def питон. Фото Что такое def питон

#46. Декораторы с параметрами. Сохранение свойств декорируемых функций

Что такое def питон. Смотреть фото Что такое def питон. Смотреть картинку Что такое def питон. Картинка про Что такое def питон. Фото Что такое def питон

#47. Импорт стандартных модулей. Команды import и from

Что такое def питон. Смотреть фото Что такое def питон. Смотреть картинку Что такое def питон. Картинка про Что такое def питон. Фото Что такое def питон

#48. Импорт собственных модулей

Что такое def питон. Смотреть фото Что такое def питон. Смотреть картинку Что такое def питон. Картинка про Что такое def питон. Фото Что такое def питон

#49. Установка сторонних модулей (pip install). Пакетная установка

Что такое def питон. Смотреть фото Что такое def питон. Смотреть картинку Что такое def питон. Картинка про Что такое def питон. Фото Что такое def питон

#50. Пакеты (package) в Python. Вложенные пакеты

Что такое def питон. Смотреть фото Что такое def питон. Смотреть картинку Что такое def питон. Картинка про Что такое def питон. Фото Что такое def питон

#51. Функция open. Чтение данных из файла

Что такое def питон. Смотреть фото Что такое def питон. Смотреть картинку Что такое def питон. Картинка про Что такое def питон. Фото Что такое def питон

#52. Исключение FileNotFoundError и менеджер контекста (with) для файлов

Что такое def питон. Смотреть фото Что такое def питон. Смотреть картинку Что такое def питон. Картинка про Что такое def питон. Фото Что такое def питон

#53. Запись данных в файл в текстовом и бинарном режимах

Что такое def питон. Смотреть фото Что такое def питон. Смотреть картинку Что такое def питон. Картинка про Что такое def питон. Фото Что такое def питон

#54. Выражения генераторы

Что такое def питон. Смотреть фото Что такое def питон. Смотреть картинку Что такое def питон. Картинка про Что такое def питон. Фото Что такое def питон

#55. Функция-генератор. Оператор yield

Что такое def питон. Смотреть фото Что такое def питон. Смотреть картинку Что такое def питон. Картинка про Что такое def питон. Фото Что такое def питон

#56. Функция map. Примеры ее использования

Что такое def питон. Смотреть фото Что такое def питон. Смотреть картинку Что такое def питон. Картинка про Что такое def питон. Фото Что такое def питон

#57. Функция filter для отбора значений итерируемых объектов

Что такое def питон. Смотреть фото Что такое def питон. Смотреть картинку Что такое def питон. Картинка про Что такое def питон. Фото Что такое def питон

#58. Функция zip. Примеры использования

Что такое def питон. Смотреть фото Что такое def питон. Смотреть картинку Что такое def питон. Картинка про Что такое def питон. Фото Что такое def питон

#59. Сортировка с помощью метода sort и функции sorted

Что такое def питон. Смотреть фото Что такое def питон. Смотреть картинку Что такое def питон. Картинка про Что такое def питон. Фото Что такое def питон

#60. Аргумент key для сортировки коллекций по ключу

Что такое def питон. Смотреть фото Что такое def питон. Смотреть картинку Что такое def питон. Картинка про Что такое def питон. Фото Что такое def питон

#61. Функции isinstance и type для проверки типов данных

Что такое def питон. Смотреть фото Что такое def питон. Смотреть картинку Что такое def питон. Картинка про Что такое def питон. Фото Что такое def питон

#62. Функции all и any. Примеры их использования

Что такое def питон. Смотреть фото Что такое def питон. Смотреть картинку Что такое def питон. Картинка про Что такое def питон. Фото Что такое def питон

#63. Расширенное представление чисел. Системы счисления

Что такое def питон. Смотреть фото Что такое def питон. Смотреть картинку Что такое def питон. Картинка про Что такое def питон. Фото Что такое def питон

#64. Битовые операции И, ИЛИ, НЕ, XOR. Сдвиговые операторы

Что такое def питон. Смотреть фото Что такое def питон. Смотреть картинку Что такое def питон. Картинка про Что такое def питон. Фото Что такое def питон

#65. Модуль random стандартной библиотеки

© 2021 Частичное или полное копирование информации с данного сайта для распространения на других ресурсах, в том числе и бумажных, строго запрещено. Все тексты и изображения являются собственностью сайта

Источник

Что такое def питон

В функцию могут быть переданы ноль и более аргументов, которые могут использоваться в теле функции.

Первой инструкцией в теле может быть литерал строки, который будет являться документацией для данной функции (строка документации — «docstring»). Некоторые утилиты и среды разработки используют такие строки для формирования интерактивной справки. Документировать код считается хорошим тоном.

Определение функции описывает пользовательский «объект функции» и является исполняемой инструкцией. В ходе исполнения происходит связывание имени функции в текущем локальном пространстве имён (локальной символьной таблице) с «объектом функции» — обёрткой вокруг исполняемого кода функции. Объект функции содержит ссылку на текущее глобальное пространство имён, которое будет использовано при вызове функции. Объект функции может быть в последующем связан и с другим именем (это можно использовать для переименования функций и создания псевдонимов).

Более того, ничто не мешает использовать «объект функции» как любой другой объект (например: передавать в функцию, использовать в качестве значения в словаре и т.п.).

В ходе исполнения функции формируется новая символьная таблица с локальными переменными функции: все назначения переменных оказываются в ней. При обращении к переменной, сначала производится попытка отыскать её в локальной символьной таблице, далее в таблицах обрамляющих функций, далее в глобальной таблице, и, наконец, в таблице встроенных имён.

Аргументы, с которыми была вызвана функция, также оказываются в её локальной символьной таблице.

Когда функция вызывает другую функцию, для вызова создаётся новая локальная символьная таблица.

В Питоне можно вкладывать одно в другое не только определения функций (этим приёмом, в частости, пользуются при создании декораторов), но и классов (в случае необходимости).

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *