FEMM 5

Модули и функции · встроенный MicroPython FEMM 5

contextlib

Закрытие потоков, подавление выбранных ошибок и стек контекстов.

Условия работы

contextlib.contextmanagerСоздаёт менеджер контекста из генераторной функции.

contextlib.contextmanager

contextmanager(func)

Создаёт менеджер контекста из генераторной функции.

Аргументы

Аргументы вызова contextlib.contextmanager
ИмяНазначение и допустимые значения
funcГенераторная функция с одним yield и блоком finally.

Возвращаемое значение

Фабрика контекста.

Пример

MicroPython FEMM 5
"Пример contextlib.contextmanager.\nСреда: встроенный MicroPython FEMM 5.\nСоздаёт менеджер контекста из генераторной функции.\nРезультат: Фабрика контекста."

import contextlib
@contextlib.contextmanager
def parameter():
    yield 100
with parameter() as n:
    assert n == 100

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

Скачать пример · Ссылка на функцию

Этот пример выполнен в установленном FEMM 5.

contextlib.closingОбеспечивает закрытие ресурса даже при исключении.

contextlib.closing

closing(thing)

Обеспечивает закрытие ресурса даже при исключении.

Аргументы

Аргументы вызова contextlib.closing
ИмяНазначение и допустимые значения
thingОбъект с методом close().

Возвращаемое значение

Менеджер, возвращающий thing и вызывающий close при выходе.

Пример

MicroPython FEMM 5
"Пример contextlib.closing.\nСреда: встроенный MicroPython FEMM 5.\nОбеспечивает закрытие ресурса даже при исключении.\nРезультат: Менеджер, возвращающий thing и вызывающий close при выходе."

import contextlib
import io
s=io.StringIO('FEMM')
with contextlib.closing(s) as f:
    assert f.read() == 'FEMM'

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

Скачать пример · Ссылка на функцию

Этот пример выполнен в установленном FEMM 5.

contextlib.suppressПродолжает выполнение после ожидаемого исключения внутри with.

contextlib.suppress

suppress(*exceptions)

Продолжает выполнение после ожидаемого исключения внутри with.

Аргументы

Аргументы вызова contextlib.suppress
ИмяНазначение и допустимые значения
exceptionsКлассы исключений, которые допустимо подавить.

Возвращаемое значение

Менеджер контекста.

Пример

MicroPython FEMM 5
"Пример contextlib.suppress.\nСреда: встроенный MicroPython FEMM 5.\nПродолжает выполнение после ожидаемого исключения внутри with.\nРезультат: Менеджер контекста."

import contextlib
with contextlib.suppress(KeyError):
    {}['missing']
assert True

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

Скачать пример · Ссылка на функцию

Этот пример выполнен в установленном FEMM 5.

contextlib.ExitStackСобирает ресурсы и закрывает их в обратном порядке.

contextlib.ExitStack

ExitStack()

Собирает ресурсы и закрывает их в обратном порядке.

Аргументы

Аргументы не требуются.

Возвращаемое значение

Стек менеджеров контекста.

Пример

MicroPython FEMM 5
"Пример contextlib.ExitStack.\nСреда: встроенный MicroPython FEMM 5.\nСобирает ресурсы и закрывает их в обратном порядке.\nРезультат: Стек менеджеров контекста."

import contextlib
events=[]
with contextlib.ExitStack() as stack:
    stack.callback(events.append,'closed')
assert events == ['closed']

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

Скачать пример · Ссылка на функцию

Этот пример выполнен в установленном FEMM 5.

contextlib.ExitStack.callbackРегистрирует произвольную функцию; её результат не подавляет исключение.

contextlib.ExitStack.callback

stack.callback(callback, *args, **kwds)

Регистрирует произвольную функцию; её результат не подавляет исключение.

Аргументы

Аргументы вызова contextlib.ExitStack.callback
ИмяНазначение и допустимые значения
callbackФункция освобождения.
argsПозиционные аргументы.
kwdsИменованные аргументы.

Возвращаемое значение

Исходная callback.

Пример

MicroPython FEMM 5
"Пример contextlib.ExitStack.callback.\nСреда: встроенный MicroPython FEMM 5.\nРегистрирует произвольную функцию; её результат не подавляет исключение.\nРезультат: Исходная callback."

import contextlib
events=[]
s=contextlib.ExitStack()
s.callback(events.append,1)
s.close()
assert events == [1]

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

Скачать пример · Ссылка на функцию

Этот пример выполнен в установленном FEMM 5.

contextlib.ExitStack.enter_contextВходит в контекст и регистрирует выход.

contextlib.ExitStack.enter_context

stack.enter_context(cm)

Входит в контекст и регистрирует выход.

Аргументы

Аргументы вызова contextlib.ExitStack.enter_context
ИмяНазначение и допустимые значения
cmМенеджер с enter/exit.

Возвращаемое значение

Результат cm.enter().

Пример

MicroPython FEMM 5
"Пример contextlib.ExitStack.enter_context.\nСреда: встроенный MicroPython FEMM 5.\nВходит в контекст и регистрирует выход.\nРезультат: Результат cm.__enter__()."

import contextlib
import io
with contextlib.ExitStack() as s:
    f=s.enter_context(io.StringIO('FEMM'))
    assert f.read() == 'FEMM'

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

Скачать пример · Ссылка на функцию

Этот пример выполнен в установленном FEMM 5.

contextlib.ExitStack.pushДобавляет функцию выхода; истинный результат способен подавить ошибку.

contextlib.ExitStack.push

stack.push(exit)

Добавляет функцию выхода; истинный результат способен подавить ошибку.

Аргументы

Аргументы вызова contextlib.ExitStack.push
ИмяНазначение и допустимые значения
exitФункция exit(type,value,traceback) или объект с exit.

Возвращаемое значение

Переданный exit.

Пример

MicroPython FEMM 5
"Пример contextlib.ExitStack.push.\nСреда: встроенный MicroPython FEMM 5.\nДобавляет функцию выхода; истинный результат способен подавить ошибку.\nРезультат: Переданный exit."

import contextlib
events=[]
s=contextlib.ExitStack()
s.push(lambda *args:events.append(1))
s.close()
assert events == [1]

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

Скачать пример · Ссылка на функцию

Этот пример выполнен в установленном FEMM 5.

contextlib.ExitStack.pop_allПередаёт ответственность за закрытие без выполнения callbacks.

contextlib.ExitStack.pop_all

stack.pop_all()

Передаёт ответственность за закрытие без выполнения callbacks.

Аргументы

Аргументы не требуются.

Возвращаемое значение

Новый ExitStack с переданными ему callbacks.

Пример

MicroPython FEMM 5
"Пример contextlib.ExitStack.pop_all.\nСреда: встроенный MicroPython FEMM 5.\nПередаёт ответственность за закрытие без выполнения callbacks.\nРезультат: Новый ExitStack с переданными ему callbacks."

import contextlib
events=[]
s=contextlib.ExitStack()
s.callback(events.append,1)
t=s.pop_all()
s.close()
assert events == []
t.close()
assert events == [1]

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

Скачать пример · Ссылка на функцию

Этот пример выполнен в установленном FEMM 5.

contextlib.ExitStack.closeНемедленно выполняет зарегистрированные выходы в обратном порядке.

contextlib.ExitStack.close

stack.close()

Немедленно выполняет зарегистрированные выходы в обратном порядке.

Аргументы

Аргументы не требуются.

Возвращаемое значение

None.

Пример

MicroPython FEMM 5
"Пример contextlib.ExitStack.close.\nСреда: встроенный MicroPython FEMM 5.\nНемедленно выполняет зарегистрированные выходы в обратном порядке.\nРезультат: None."

import contextlib
events=[]
s=contextlib.ExitStack()
s.callback(events.append,1)
s.callback(events.append,2)
s.close()
assert events == [2,1]

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

Скачать пример · Ссылка на функцию

Этот пример выполнен в установленном FEMM 5.

Имена в установленной сборке

Перечень получен во встроенном интерпретаторе. Он включает функции, классы и константы. Ссылки ведут к контрактам; для прямого доступа ulab учитывайте условия этого раздела.