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() # динамично извикване на метода
Интроспекцията е полезна за писане на гъвкав и динамичен код, например във фреймуъркове, тестове или при сериализация на обекти.