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

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук

Інтроспекція (англ. 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.'


Комп'ютер Це незавершена стаття про комп'ютери.
Ви можете допомогти проекту, виправивши або дописавши її.