Модули и функции · встроенный MicroPython FEMM 5
inspect
Ограниченная проверка типов и видимых атрибутов.
Условия работы
- getmembers и проверки is* подходят для разведки API. Получение кадров, исходного текста и полной сигнатуры ограничено.
- signature требует отсутствующий uctypes и в этой сборке вызывает ImportError. Аргументы функций определяйте по карточкам справочника и исходному объявлению функции.
- getmodule/getsourcefile/currentframe возвращают None; getfile/getsource/getframeinfo возвращают заглушки; getmro возвращает только [cls].
inspect.getmembersinspect.isfunctioninspect.isgeneratorfunctioninspect.isgeneratorinspect.ismethodinspect.isclassinspect.ismoduleinspect.iscoroutinefunctioninspect.iscoroutineinspect.getargspecinspect.getmoduleinspect.getsourcefileinspect.getfileinspect.getsourceinspect.currentframeinspect.getframeinfoinspect.getmroinspect.signatureinspect.getmembersЧитает dir/getattr; некоторые свойства могут иметь побочный эффект.
inspect.getmembers
getmembers(obj, pred=None)Читает dir/getattr; некоторые свойства могут иметь побочный эффект.
Аргументы
| Имя | Назначение и допустимые значения |
|---|---|
obj | Проверяемый объект. |
pred | Функция отбора значений или None. |
Возвращаемое значение
Отсортированный список пар (имя, значение).
Пример
"Пример inspect.getmembers.\nСреда: встроенный MicroPython FEMM 5.\nЧитает dir/getattr; некоторые свойства могут иметь побочный эффект.\nРезультат: Отсортированный список пар (имя, значение)."
import inspect
assert any(n == 'append' for n,v in inspect.getmembers([]))
Ожидаемый результат. Проверки assert проходят без исключения.
Скачать пример · Ссылка на функцию
Этот пример выполнен в установленном FEMM 5.
inspect.isfunctionПроверяет внутренний тип isfunction. Генераторы и корутины этой реализацией не различаются.
inspect.isfunction
isfunction(obj)Проверяет внутренний тип isfunction. Генераторы и корутины этой реализацией не различаются.
Аргументы
| Имя | Назначение и допустимые значения |
|---|---|
obj | Проверяемый объект. |
Возвращаемое значение
bool.
Пример
"Пример inspect.isfunction.\nСреда: встроенный MicroPython FEMM 5.\nПроверяет внутренний тип isfunction. Генераторы и корутины этой реализацией не различаются.\nРезультат: bool."
import inspect
def gen():
yield 1
class C:
def method(self):
pass
assert inspect.isfunction(lambda x:x)
Ожидаемый результат. Проверки assert проходят без исключения.
Скачать пример · Ссылка на функцию
Этот пример выполнен в установленном FEMM 5.
inspect.isgeneratorfunctionПроверяет внутренний тип isgeneratorfunction. Генераторы и корутины этой реализацией не различаются.
inspect.isgeneratorfunction
isgeneratorfunction(obj)Проверяет внутренний тип isgeneratorfunction. Генераторы и корутины этой реализацией не различаются.
Аргументы
| Имя | Назначение и допустимые значения |
|---|---|
obj | Проверяемый объект. |
Возвращаемое значение
bool.
Пример
"Пример inspect.isgeneratorfunction.\nСреда: встроенный MicroPython FEMM 5.\nПроверяет внутренний тип isgeneratorfunction. Генераторы и корутины этой реализацией не различаются.\nРезультат: bool."
import inspect
def gen():
yield 1
class C:
def method(self):
pass
assert inspect.isgeneratorfunction(gen)
Ожидаемый результат. Проверки assert проходят без исключения.
Скачать пример · Ссылка на функцию
Этот пример выполнен в установленном FEMM 5.
inspect.isgeneratorПроверяет внутренний тип isgenerator. Генераторы и корутины этой реализацией не различаются.
inspect.isgenerator
isgenerator(obj)Проверяет внутренний тип isgenerator. Генераторы и корутины этой реализацией не различаются.
Аргументы
| Имя | Назначение и допустимые значения |
|---|---|
obj | Проверяемый объект. |
Возвращаемое значение
bool.
Пример
"Пример inspect.isgenerator.\nСреда: встроенный MicroPython FEMM 5.\nПроверяет внутренний тип isgenerator. Генераторы и корутины этой реализацией не различаются.\nРезультат: bool."
import inspect
def gen():
yield 1
class C:
def method(self):
pass
assert inspect.isgenerator(gen())
Ожидаемый результат. Проверки assert проходят без исключения.
Скачать пример · Ссылка на функцию
Этот пример выполнен в установленном FEMM 5.
inspect.ismethodПроверяет внутренний тип ismethod. Генераторы и корутины этой реализацией не различаются.
inspect.ismethod
ismethod(obj)Проверяет внутренний тип ismethod. Генераторы и корутины этой реализацией не различаются.
Аргументы
| Имя | Назначение и допустимые значения |
|---|---|
obj | Проверяемый объект. |
Возвращаемое значение
bool.
Пример
"Пример inspect.ismethod.\nСреда: встроенный MicroPython FEMM 5.\nПроверяет внутренний тип ismethod. Генераторы и корутины этой реализацией не различаются.\nРезультат: bool."
import inspect
def gen():
yield 1
class C:
def method(self):
pass
assert inspect.ismethod(C().method)
Ожидаемый результат. Проверки assert проходят без исключения.
Скачать пример · Ссылка на функцию
Этот пример выполнен в установленном FEMM 5.
inspect.isclassПроверяет внутренний тип isclass. Генераторы и корутины этой реализацией не различаются.
inspect.isclass
isclass(obj)Проверяет внутренний тип isclass. Генераторы и корутины этой реализацией не различаются.
Аргументы
| Имя | Назначение и допустимые значения |
|---|---|
obj | Проверяемый объект. |
Возвращаемое значение
bool.
Пример
"Пример inspect.isclass.\nСреда: встроенный MicroPython FEMM 5.\nПроверяет внутренний тип isclass. Генераторы и корутины этой реализацией не различаются.\nРезультат: bool."
import inspect
def gen():
yield 1
class C:
def method(self):
pass
assert inspect.isclass(C)
Ожидаемый результат. Проверки assert проходят без исключения.
Скачать пример · Ссылка на функцию
Этот пример выполнен в установленном FEMM 5.
inspect.ismoduleПроверяет внутренний тип ismodule. Генераторы и корутины этой реализацией не различаются.
inspect.ismodule
ismodule(obj)Проверяет внутренний тип ismodule. Генераторы и корутины этой реализацией не различаются.
Аргументы
| Имя | Назначение и допустимые значения |
|---|---|
obj | Проверяемый объект. |
Возвращаемое значение
bool.
Пример
"Пример inspect.ismodule.\nСреда: встроенный MicroPython FEMM 5.\nПроверяет внутренний тип ismodule. Генераторы и корутины этой реализацией не различаются.\nРезультат: bool."
import inspect
def gen():
yield 1
class C:
def method(self):
pass
assert inspect.ismodule(inspect)
Ожидаемый результат. Проверки assert проходят без исключения.
Скачать пример · Ссылка на функцию
Этот пример выполнен в установленном FEMM 5.
inspect.iscoroutinefunctionПроверяет внутренний тип iscoroutinefunction. Генераторы и корутины этой реализацией не различаются.
inspect.iscoroutinefunction
iscoroutinefunction(obj)Проверяет внутренний тип iscoroutinefunction. Генераторы и корутины этой реализацией не различаются.
Аргументы
| Имя | Назначение и допустимые значения |
|---|---|
obj | Проверяемый объект. |
Возвращаемое значение
bool.
Пример
"Пример inspect.iscoroutinefunction.\nСреда: встроенный MicroPython FEMM 5.\nПроверяет внутренний тип iscoroutinefunction. Генераторы и корутины этой реализацией не различаются.\nРезультат: bool."
import inspect
def gen():
yield 1
class C:
def method(self):
pass
assert inspect.iscoroutinefunction(gen)
Ожидаемый результат. Проверки assert проходят без исключения.
Скачать пример · Ссылка на функцию
Этот пример выполнен в установленном FEMM 5.
inspect.iscoroutineПроверяет внутренний тип iscoroutine. Генераторы и корутины этой реализацией не различаются.
inspect.iscoroutine
iscoroutine(obj)Проверяет внутренний тип iscoroutine. Генераторы и корутины этой реализацией не различаются.
Аргументы
| Имя | Назначение и допустимые значения |
|---|---|
obj | Проверяемый объект. |
Возвращаемое значение
bool.
Пример
"Пример inspect.iscoroutine.\nСреда: встроенный MicroPython FEMM 5.\nПроверяет внутренний тип iscoroutine. Генераторы и корутины этой реализацией не различаются.\nРезультат: bool."
import inspect
def gen():
yield 1
class C:
def method(self):
pass
assert inspect.iscoroutine(gen())
Ожидаемый результат. Проверки assert проходят без исключения.
Скачать пример · Ссылка на функцию
Этот пример выполнен в установленном FEMM 5.
inspect.getargspecПолная динамическая спецификация аргументов не реализована.
inspect.getargspec
getargspec(func)Полная динамическая спецификация аргументов не реализована.
Аргументы
| Имя | Назначение и допустимые значения |
|---|---|
func | Функция для анализа. |
Возвращаемое значение
Всегда NotImplementedError.
Пример
"Пример inspect.getargspec.\nСреда: встроенный MicroPython FEMM 5.\nПолная динамическая спецификация аргументов не реализована.\nРезультат: Всегда NotImplementedError."
import inspect
try:
inspect.getargspec(abs)
except NotImplementedError:
pass
else:
raise AssertionError('expected NotImplementedError')
Ожидаемый результат. Проверки assert проходят без исключения.
Скачать пример · Ссылка на функцию
Нативная проверка описанного ограничения выполнена; ожидаемая ошибка или особенность подтверждена.
inspect.getmoduleВозвращает фиксированный результат ограниченной реализации.
inspect.getmodule
getmodule(obj, _filename=None)Возвращает фиксированный результат ограниченной реализации.
Аргументы
| Имя | Назначение и допустимые значения |
|---|---|
obj | Объект. |
_filename | Не используется. |
Возвращаемое значение
None.
Пример
"Пример inspect.getmodule.\nСреда: встроенный MicroPython FEMM 5.\nВозвращает фиксированный результат ограниченной реализации.\nРезультат: None."
import inspect
assert inspect.getmodule(abs) is None
Ожидаемый результат. Проверки assert проходят без исключения.
Скачать пример · Ссылка на функцию
Этот пример выполнен в установленном FEMM 5.
inspect.getsourcefileВозвращает фиксированный результат ограниченной реализации.
inspect.getsourcefile
getsourcefile(obj)Возвращает фиксированный результат ограниченной реализации.
Аргументы
| Имя | Назначение и допустимые значения |
|---|---|
obj | Объект. |
Возвращаемое значение
None.
Пример
"Пример inspect.getsourcefile.\nСреда: встроенный MicroPython FEMM 5.\nВозвращает фиксированный результат ограниченной реализации.\nРезультат: None."
import inspect
assert inspect.getsourcefile(abs) is None
Ожидаемый результат. Проверки assert проходят без исключения.
Скачать пример · Ссылка на функцию
Этот пример выполнен в установленном FEMM 5.
inspect.getfileВозвращает фиксированный результат ограниченной реализации.
inspect.getfile
getfile(obj)Возвращает фиксированный результат ограниченной реализации.
Аргументы
| Имя | Назначение и допустимые значения |
|---|---|
obj | Объект. |
Возвращаемое значение
Строка
Пример
"Пример inspect.getfile.\nСреда: встроенный MicroPython FEMM 5.\nВозвращает фиксированный результат ограниченной реализации.\nРезультат: Строка <unknown>."
import inspect
assert inspect.getfile(abs) == '<unknown>'
Ожидаемый результат. Проверки assert проходят без исключения.
Скачать пример · Ссылка на функцию
Этот пример выполнен в установленном FEMM 5.
inspect.getsourceВозвращает фиксированный результат ограниченной реализации.
inspect.getsource
getsource(obj)Возвращает фиксированный результат ограниченной реализации.
Аргументы
| Имя | Назначение и допустимые значения |
|---|---|
obj | Объект. |
Возвращаемое значение
Строка
Пример
"Пример inspect.getsource.\nСреда: встроенный MicroPython FEMM 5.\nВозвращает фиксированный результат ограниченной реализации.\nРезультат: Строка <source redacted to save you memory>."
import inspect
assert inspect.getsource(abs).startswith('<source redacted')
Ожидаемый результат. Проверки assert проходят без исключения.
Скачать пример · Ссылка на функцию
Этот пример выполнен в установленном FEMM 5.
inspect.currentframeВозвращает фиксированный результат ограниченной реализации.
inspect.currentframe
currentframe()Возвращает фиксированный результат ограниченной реализации.
Аргументы
Аргументы не требуются.
Возвращаемое значение
None.
Пример
"Пример inspect.currentframe.\nСреда: встроенный MicroPython FEMM 5.\nВозвращает фиксированный результат ограниченной реализации.\nРезультат: None."
import inspect
assert inspect.currentframe() is None
Ожидаемый результат. Проверки assert проходят без исключения.
Скачать пример · Ссылка на функцию
Этот пример выполнен в установленном FEMM 5.
inspect.getframeinfoВозвращает фиксированный результат ограниченной реализации.
inspect.getframeinfo
getframeinfo(frame, context=1)Возвращает фиксированный результат ограниченной реализации.
Аргументы
| Имя | Назначение и допустимые значения |
|---|---|
frame | Не используется. |
context | Не используется. |
Возвращаемое значение
Кортеж (
Пример
"Пример inspect.getframeinfo.\nСреда: встроенный MicroPython FEMM 5.\nВозвращает фиксированный результат ограниченной реализации.\nРезультат: Кортеж (<unknown>, -1, <unknown>, [\"\"], 0)."
import inspect
assert inspect.getframeinfo(None)[1] == -1
Ожидаемый результат. Проверки assert проходят без исключения.
Скачать пример · Ссылка на функцию
Этот пример выполнен в установленном FEMM 5.
inspect.getmroВозвращает фиксированный результат ограниченной реализации.
inspect.getmro
getmro(cls)Возвращает фиксированный результат ограниченной реализации.
Аргументы
| Имя | Назначение и допустимые значения |
|---|---|
cls | Класс. |
Возвращаемое значение
Список [cls].
Пример
"Пример inspect.getmro.\nСреда: встроенный MicroPython FEMM 5.\nВозвращает фиксированный результат ограниченной реализации.\nРезультат: Список [cls]."
import inspect
assert inspect.getmro(int) == [int]
Ожидаемый результат. Проверки assert проходят без исключения.
Скачать пример · Ссылка на функцию
Этот пример выполнен в установленном FEMM 5.
inspect.signatureПеред анализом функции импортирует отсутствующий uctypes, поэтому в проверенной сборке получить сигнатуру нельзя. Используйте явно документированные аргументы функции.
inspect.signature
signature(f)Перед анализом функции импортирует отсутствующий uctypes, поэтому в проверенной сборке получить сигнатуру нельзя. Используйте явно документированные аргументы функции.
Аргументы
| Имя | Назначение и допустимые значения |
|---|---|
f | Поддерживаемая встроенная либо байткодовая функция. |
Возвращаемое значение
ImportError при вызове в проверенной сборке.
Особенности вызова
- Исключение возникает при импорте uctypes, до чтения внутренних данных интерпретатора.
Пример
"Пример inspect.signature.\nСреда: встроенный MicroPython FEMM 5.\nПеред анализом функции импортирует отсутствующий uctypes, поэтому в проверенной сборке получить сигнатуру нельзя. Используйте явно документированные аргументы функции.\nРезультат: ImportError при вызове в проверенной сборке."
import inspect
try:
inspect.signature(abs)
except ImportError:
pass
else:
raise AssertionError("expected ImportError")
Ожидаемый результат. Получено и перехвачено ожидаемое исключение ImportError.
Скачать пример · Ссылка на функцию
Нативная проверка описанного ограничения выполнена; ожидаемая ошибка или особенность подтверждена.
Имена в установленной сборке
Перечень получен во встроенном интерпретаторе. Он включает функции, классы и константы. Ссылки ведут к контрактам; для прямого доступа ulab учитывайте условия этого раздела.