Функции, основы
Вот и наконец то мы дошли до функций. В предыдущих постах мы сталкивались с функциями, но теперь мы рассмотрим их подробно и будем знать как создавать свои функции.
Функции - инструкции языка которые обеспечивают многократное использование кода, и в будущем будут помогать в проектировании сложных систем, путем разбития их на простые части.
Инструкции и выражения, имеющие отношение к функциям:
Вызов - myfunc(‘spam’, ‘eggs’, meat=ham)
def, return - def adder(a, b=1, *c):
return a+b+c[0]
global - def changer():
global x; x = ‘new’
nonlocal - def changer():
nonlocal x; x = ‘new’
yield - def squares(x):
for i in range(x): yield i ** 2
lambda - funcs = [lambda x: x**2, lambda x: x*3]
-----------------------------------------------------------------
- Максимизировать многократное использование программного кода и минимизировать
его избыточность.
- Процедурная декомпозиция (разбитие сложной системы на части).
- Процедурная декомпозиция (разбитие сложной системы на части).
Создание функций:
Функции в языке Python созда
ются с помощью новой инструкции def.
def создает объект и присваивает ему имя. Когда интерпретатор Python встречает и выполняет инструкцию def, он создает новый объект-функцию и связывает его с именем функции.
Выражение lambda создает объект и возвращает его в виде результата. Функции могут также создаваться с помощью выражения lambda. Это по- Это позволяет создавать встроенные определения функций там, где синтаксис языка не позволяет использовать инструкцию def.
return передает объект результата вызывающей программе. Функции, вычисляющие
какое-либо значение, возвращают его с помощью инструкции return – возвращаемое значение становится результатом обращения к функции.
yield передает объект результата вызывающей программе и запоминает, где был произведен возврат.
Аргументы передаются посредством присваивания (в виде ссылок на объекты).
global объявляет переменные, глобальные для модуля, без присваивания им значений.
nonlocal объявляет переменные, находящиеся в области видимости объемлющей функции, без присваивания им значений.
Инструкция def:
def <имя>(arg1, arg2,... argN):
<операции>
Общий вид использования инструкции.
-----------------------------------------------------------------
Инструкция def + return:
def <имя>(arg1, arg2,... argN):
<операции>
...
return <значение>
Использование инструкции def которая возвращает значение (return).
-----------------------------------------------------------------
Инструкции def исполняются во время выполнения.
Допускается вкладывать определения функций внутрь инструкций if:
if test:
def func(): # Определяет функцию таким способом
...
else:
def func(): # Или таким способом
...
...
func() # Вызов выбранной версии
-----------------------------------------------------------------
Первый пример с определением и вызовом функции:
определение:
>>> def times(x, y): # Создать функцию и связать ее с именем
... return x * y # Тело, выполняемое при вызове функции
...
вызов:
>>> times(2, 4) # Аргументы в круглых скобках
8
Как видите, функция вызывается в программе добавив скобки после ее названия. Данное выражение передает функции times два аргумента (x, y).
-----------------------------------------------------------------
Теперь посмотрим, что произойдет, если функции передать объекты совершенно разных типов:
>>> times(‘Ni’, 4) # Функции не имеют типа
‘NiNiNiNi’
На этом заканчивается такой вот короткий обзор...
Комментариев нет:
Отправить комментарий