FEMM 5

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

ucontextlib

Генераторные менеджеры контекста с гарантированным finally.

ucontextlib.contextmanagerКод до yield готовит ресурс, yield возвращает значение with, finally освобождает ресурс.

ucontextlib.contextmanager

contextmanager(func)

Код до yield готовит ресурс, yield возвращает значение with, finally освобождает ресурс.

Аргументы

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

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

Декорированная фабрика менеджера контекста.

Пример

MicroPython FEMM 5
"Пример ucontextlib.contextmanager.\nСреда: встроенный MicroPython FEMM 5.\nКод до yield готовит ресурс, yield возвращает значение with, finally освобождает ресурс.\nРезультат: Декорированная фабрика менеджера контекста."

import ucontextlib
events=[]
@ucontextlib.contextmanager
def state():
    events.append('open')
    try:
        yield 100
    finally:
        events.append('close')
with state() as n:
    assert n == 100
assert events == ['open','close']

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

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

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

ucontextlib.ContextDecoratorБаза для собственных контекстов: подкласс должен определить __enter__ и __exit__.

ucontextlib.ContextDecorator

ContextDecorator()

База для собственных контекстов: подкласс должен определить __enter__ и __exit__.

Аргументы

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

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

Базовый объект менеджера/декоратора.

Пример

MicroPython FEMM 5
"Пример ucontextlib.ContextDecorator.\nСреда: встроенный MicroPython FEMM 5.\nБаза для собственных контекстов: подкласс должен определить __enter__ и __exit__.\nРезультат: Базовый объект менеджера/декоратора."

import ucontextlib
class Quiet(ucontextlib.ContextDecorator):
    def __enter__(self):
        return self
    def __exit__(self,*args):
        return False
with Quiet():
    assert 2+2 == 4

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

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

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

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

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