Модули и функции · встроенный MicroPython FEMM 5
contextlib
Закрытие потоков, подавление выбранных ошибок и стек контекстов.
Условия работы
- contextmanager и ContextDecorator доступны через импорт из ucontextlib. suppress подавляет только явно указанные типы исключений.
contextlib.contextmanagercontextlib.closingcontextlib.suppresscontextlib.ExitStackcontextlib.ExitStack.callbackcontextlib.ExitStack.enter_contextcontextlib.ExitStack.pushcontextlib.ExitStack.pop_allcontextlib.ExitStack.closecontextlib.contextmanagerСоздаёт менеджер контекста из генераторной функции.
contextlib.contextmanager
contextmanager(func)Создаёт менеджер контекста из генераторной функции.
Аргументы
| Имя | Назначение и допустимые значения |
|---|---|
func | Генераторная функция с одним yield и блоком finally. |
Возвращаемое значение
Фабрика контекста.
Пример
"Пример 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)Обеспечивает закрытие ресурса даже при исключении.
Аргументы
| Имя | Назначение и допустимые значения |
|---|---|
thing | Объект с методом close(). |
Возвращаемое значение
Менеджер, возвращающий thing и вызывающий close при выходе.
Пример
"Пример 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.
Аргументы
| Имя | Назначение и допустимые значения |
|---|---|
exceptions | Классы исключений, которые допустимо подавить. |
Возвращаемое значение
Менеджер контекста.
Пример
"Пример 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()Собирает ресурсы и закрывает их в обратном порядке.
Аргументы
Аргументы не требуются.
Возвращаемое значение
Стек менеджеров контекста.
Пример
"Пример 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)Регистрирует произвольную функцию; её результат не подавляет исключение.
Аргументы
| Имя | Назначение и допустимые значения |
|---|---|
callback | Функция освобождения. |
args | Позиционные аргументы. |
kwds | Именованные аргументы. |
Возвращаемое значение
Исходная callback.
Пример
"Пример 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)Входит в контекст и регистрирует выход.
Аргументы
| Имя | Назначение и допустимые значения |
|---|---|
cm | Менеджер с enter/exit. |
Возвращаемое значение
Результат cm.enter().
Пример
"Пример 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)Добавляет функцию выхода; истинный результат способен подавить ошибку.
Аргументы
| Имя | Назначение и допустимые значения |
|---|---|
exit | Функция exit(type,value,traceback) или объект с exit. |
Возвращаемое значение
Переданный exit.
Пример
"Пример 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.
Пример
"Пример 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.
Пример
"Пример 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 учитывайте условия этого раздела.