Інтроспекція (програмування)

Інтроспекція (англ. type introspection) в програмуванні — можливість визначити тип і структуру об'єкта під час виконання програми. Інтроспекція як механізм присутня в деяких об'єктно-орієнтованих мовах, в тому числі — в усіх мовах, що дозволяють маніпулювати типами об'єктів як об'єктами першого класу. Особливо помітна в мові Objective C.

Інтроспекція може використовуватись задля реалізації поліморфізму.

Мови, що підтримують інтроспекцію ред.

Приклад в Python ред.

>>> a=2 # Присвоюємо змінній a числове значення
>>> type(a) # Отримуємо тип змінної a
<type 'int'> # a - ціле
>>> dir(a) # отримуємо список методів змінної a
['__abs__', '__add__', '__and__', '__class__', '__cmp__', '__coerce__', '__delattr__', '__div__', '__divmod__', '__doc__', '__float__', '__floordiv__', '__format__', '__getattribute__', '__getnewargs__', '__hash__', '__hex__', '__index__', '__init__', '__int__', '__invert__', '__long__', '__lshift__', '__mod__', '__mul__', '__neg__', '__new__', '__nonzero__', '__oct__', '__or__', '__pos__', '__pow__', '__radd__', '__rand__', '__rdiv__', '__rdivmod__', '__reduce__', '__reduce_ex__', '__repr__', '__rfloordiv__', '__rlshift__', '__rmod__', '__rmul__', '__ror__', '__rpow__', '__rrshift__', '__rshift__', '__rsub__', '__rtruediv__', '__rxor__', '__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', '__truediv__', '__trunc__', '__xor__', 'conjugate', 'denominator', 'imag', 'numerator', 'real']
>>> a="Hello!" # Присвоюємо a рядок
>>> type(a)
<type 'str'> # тип a теж відповідно змінився.
>>> a.__doc__ # отримуємо рядок документації до класу.
'str(object) -> string\n\nReturn a nice string representation of the object.\nIf the argument is a string, the return value is the same object.'