Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Python: inspect, introspection, python, reflection

Какая стандартная библиотека позволяет интроспектировать объекты и функции в Python?

Вопрос проверяет знание стандартной библиотеки Python для интроспекции объектов и функций.

Короткий ответ

Стандартная библиотека `inspect` позволяет получать информацию о живых объектах, таких как модули, классы, методы, функции, фреймы и объекты кода. С её помощью можно извлекать исходный код, аргументы функций, стек вызовов и проверять типы объектов. Это полезно для отладки, логирования и создания динамических инструментов.

Длинный ответ

Что такое интроспекция и зачем она нужна?

Интроспекция в Python — это возможность исследовать объекты во время выполнения программы, получая информацию об их типе, атрибутах, методах и структуре. Стандартная библиотека inspect предоставляет удобные функции для этой задачи, позволяя разработчикам писать более гибкий и самодиагностируемый код.

Основные возможности библиотеки inspect

  • Получение исходного кода: inspect.getsource() возвращает текст функции, класса или модуля.
  • Информация об аргументах: inspect.signature() показывает параметры функции и их значения по умолчанию.
  • Проверка типов: inspect.ismodule(), inspect.isfunction(), inspect.isclass() и другие.
  • Стек вызовов: inspect.stack() возвращает текущий стек для отладки.

Пример использования

import inspect

def example(a, b=10):
    """Простая функция для демонстрации"""
    return a + b

# Получаем сигнатуру функции
sig = inspect.signature(example)
print(sig)  # (a, b=10)

# Получаем исходный код
print(inspect.getsource(example))

# Проверяем, является ли объект функцией
print(inspect.isfunction(example))  # True

Где применяется

Библиотека inspect активно используется в фреймворках (например, Django, Flask) для автоматической генерации документации, в декораторах для логирования вызовов, а также в инструментах тестирования и отладки. Она позволяет создавать код, который адаптируется к структуре других объектов без жёсткой привязки.

Вывод: Используйте inspect, когда нужно динамически анализировать код, создавать гибкие API или отлаживать сложные системы. Это мощный инструмент для метапрограммирования и рефлексии в Python.

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    4

  • Сложность:

    4

Навыки

  • Python

    Python

Ключевые слова

#inspect

#introspection

#python

#reflection

Подпишись на Python Developer в телеграм

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.