Sobes.tech
Junior — Middle

Можете ли да обясните какво се разбира под термина интроспекция в програмирането?

sobes.tech AI

Отговор от AI

Интроспекцията в програмирането е способността на програма да изследва собствената си структура по време на изпълнение. В Python това означава възможността да получавате информация за типовете обекти, техните атрибути, методи и други характеристики динамично.

Например, с помощта на функции като type(), dir(), getattr() можете да разберете кои методи са налични за даден обект или да ги извикате динамично.

Пример за интроспекция:

class MyClass:
    def method(self):
        pass

obj = MyClass()

print(type(obj))          # <class '__main__.MyClass'>
print(dir(obj))           # списък с атрибути и методи
print(hasattr(obj, 'method'))  # True
method = getattr(obj, 'method')
method()  # динамично извикване на метода

Интроспекцията е полезна за писане на гъвкав и динамичен код, например във фреймуъркове, тестове или при сериализация на обекти.