Задача “Односвязный список”

Слайд 2

Задача “Односвязный список” Связный список — это структура данных, которая состоит

Задача “Односвязный список”

Связный список — это структура данных, которая состоит из

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

Атрибуты класса ОднСписок:
Указатель на первый (головной) узел

Ссылка на следующий узел

Атрибуты класса Узел:
Значение

Слайд 3

Функция как объект. Функции высшего порядка

Функция как объект. Функции высшего порядка

Слайд 4

Условие задачи: Функция Выходные данные: Время работы функции Задача “Таймер”

Условие задачи:
Функция
Выходные данные:
Время работы функции

Задача “Таймер”

Слайд 5

Функции Функция (объект) первого класса Передается и используется в качестве аргумента для других функций

Функции

Функция (объект) первого класса

Передается и используется в качестве аргумента для других

функций
Слайд 6

Декораторы

Декораторы

Слайд 7

Реализация декоратора def decorator(func): def wrapped_func(*args, **kwargs): # Код до вызова

Реализация декоратора

def decorator(func):

def wrapped_func(*args, **kwargs):

# Код до вызова функции
value = func(*args,

**kwargs)
# Код после вызова функции
return value

return wrapped_func

Декоратор является одним из паттернов проектирования

Слайд 8

Некоторые особенности использования декораторов

Некоторые особенности использования декораторов

Слайд 9

Условие задачи: Функции Нужен декоратор, “регистрирующий” функции как плагины Выходные данные:

Условие задачи:
Функции
Нужен декоратор, “регистрирующий” функции как плагины
Выходные данные:
PLUGINS - зарегистрированные плагины

Задача

“Плагины”
Слайд 10

Модуль functools. Декоратор functools.wraps()

Модуль functools. Декоратор functools.wraps()

Слайд 11

Итоги модуля def timer(func): def wrapper(*args, **kwargs): . . . .

Итоги модуля

def timer(func):
def wrapper(*args, **kwargs):
. . . . . .
return

wrapper

def timer(func):
. . . . .
my_func = squares_sum

timer - функция высшего порядка

@timer
@logging

@functools.wraps(func)