Модули и функции · встроенный MicroPython FEMM 5
functools
Свёртка последовательностей и частичное задание аргументов.
Условия работы
- wraps и update_wrapper в этой поставке являются пустыми обёртками: метаданные функции не копируются.
- В reduce initializer=None означает отсутствие начального значения; явный None не работает как отдельный начальный элемент.
functools.partialfunctools.reducefunctools.update_wrapperfunctools.wrapsfunctools.partialФиксирует часть параметров, например коэффициент преобразования.
functools.partial
partial(func, *args, **kwargs)Фиксирует часть параметров, например коэффициент преобразования.
Аргументы
| Имя | Назначение и допустимые значения |
|---|---|
func | Вызываемая функция. |
args | Первые позиционные аргументы. |
kwargs | Заранее заданные именованные аргументы; при вызове их можно переопределить. |
Возвращаемое значение
Новая вызываемая функция.
Пример
"Пример functools.partial.\nСреда: встроенный MicroPython FEMM 5.\nФиксирует часть параметров, например коэффициент преобразования.\nРезультат: Новая вызываемая функция."
import functools
scale = functools.partial(lambda k,x:k*x,1000)
assert scale(0.25) == 250
Ожидаемый результат. Проверки assert проходят без исключения.
Скачать пример · Ссылка на функцию
Этот пример выполнен в установленном FEMM 5.
functools.reduceВыполняет последовательную свёртку; пустой вход без начального значения вызывает StopIteration.
functools.reduce
reduce(function, iterable, initializer=None)Выполняет последовательную свёртку; пустой вход без начального значения вызывает StopIteration.
Аргументы
| Имя | Назначение и допустимые значения |
|---|---|
function | Функция двух аргументов: накопитель и очередной элемент. |
iterable | Последовательность обработки. |
initializer | Начальное значение; None использует первый элемент. |
Возвращаемое значение
Последнее значение накопителя.
Пример
"Пример functools.reduce.\nСреда: встроенный MicroPython FEMM 5.\nВыполняет последовательную свёртку; пустой вход без начального значения вызывает StopIteration.\nРезультат: Последнее значение накопителя."
import functools
assert functools.reduce(lambda a,b:a+b,[1,2,3],0) == 6
Ожидаемый результат. Проверки assert проходят без исключения.
Скачать пример · Ссылка на функцию
Этот пример выполнен в установленном FEMM 5.
functools.update_wrapperСохраняет синтаксис библиотек, использующих этот вызов, без переноса атрибутов.
functools.update_wrapper
update_wrapper(wrapper, wrapped, assigned=None, updated=None)Сохраняет синтаксис библиотек, использующих этот вызов, без переноса атрибутов.
Аргументы
| Имя | Назначение и допустимые значения |
|---|---|
wrapper | Функция обёртки. |
wrapped | Исходная функция; в этой реализации не используется. |
assigned | Не используется. |
updated | Не используется. |
Возвращаемое значение
Тот же wrapper.
Пример
"Пример functools.update_wrapper.\nСреда: встроенный MicroPython FEMM 5.\nСохраняет синтаксис библиотек, использующих этот вызов, без переноса атрибутов.\nРезультат: Тот же wrapper."
import functools
f = lambda x:x
assert functools.update_wrapper(f,abs) is f
Ожидаемый результат. Проверки assert проходят без исключения.
Скачать пример · Ссылка на функцию
Этот пример выполнен в установленном FEMM 5.
functools.wrapsПозволяет использовать запись @wraps в сценарии.
functools.wraps
wraps(wrapped, assigned=None, updated=None)Позволяет использовать запись @wraps в сценарии.
Аргументы
| Имя | Назначение и допустимые значения |
|---|---|
wrapped | Исходная функция, не используется. |
assigned | Не используется. |
updated | Не используется. |
Возвращаемое значение
Декоратор, возвращающий функцию без изменений.
Пример
"Пример functools.wraps.\nСреда: встроенный MicroPython FEMM 5.\nПозволяет использовать запись @wraps в сценарии.\nРезультат: Декоратор, возвращающий функцию без изменений."
import functools
@functools.wraps(abs)
def magnitude(x):
return abs(x)
assert magnitude(-2) == 2
Ожидаемый результат. Проверки assert проходят без исключения.
Скачать пример · Ссылка на функцию
Этот пример выполнен в установленном FEMM 5.
Имена в установленной сборке
Перечень получен во встроенном интерпретаторе. Он включает функции, классы и константы. Ссылки ведут к контрактам; для прямого доступа ulab учитывайте условия этого раздела.