Интроспекция — это способность программы изучать объекты во время выполнения: узнавать их тип, структуру, атрибуты, методы и даже иерархию наследования.
🧩 Это мощный инструмент, встроенный в Python (а также доступный в других языках, например Java, PHP, Ruby). Он позволяет, например:
— Проверить тип объекта с помощью type()
— Проверить, к какому классу принадлежит объект — isinstance(obj, Class)
— Получить список доступных атрибутов и методов — dir(obj)
— Изучить содержимое объекта — через __dict__
Пример:
class Foo:
def __init__(self, val):
self.x = val
def bar(self):
return self.x
obj = Foo(5)
print(dir(obj))
Результат:
['__class__', '__dict__', ..., 'bar', 'x']
Это удобно для отладки, разработки, рефлексии, создания универсальных функций, которые могут работать с разными типами данных.
Библиотека собеса по Python