Middle
21
0
questionbank

Что такое рефлексия в контексте Python?

Answer from sobes.tech neural network

Возможность программы исследовать и модифицировать собственную структуру и поведение во время выполнения. Позволяет работать с объектами, типами, функциями и модулями, чьи имена или структуры неизвестны заранее до выполнения кода.

Основные возможности:

  • Получение информации о типе/объекте:
    • type() - получить тип объекта.
    • isinstance() - проверить, является ли объект экземпляром класса или подклассом.
    • issubclass() - проверить, является ли один класс подклассом другого.
  • Доступ к атрибутам:
    • getattr(obj, name[, default]) - получить значение атрибута.
    • setattr(obj, name, value) - установить значение атрибута.
    • hasattr(obj, name) - проверить наличие атрибута.
    • delattr(obj, name) - удалить атрибут.
  • Доступ к документации:
    • help() - интерактивная справка.
    • __doc__ - доступ к docstring объекта.
  • Выполнение кода:
    • eval(expression[, globals[, locals]]) - выполняет строку как выражение Python.
    • exec(object[, globals[, locals]]) - выполняет строку или объект кода.
  • Исследование пространства имен:
    • dir([object]) - список имен в текущем пространстве имен или атрибутов объекта.
    • globals() - словарь глобальных переменных текущего модуля.
    • locals() - словарь локальных переменных текущей функции или модуля.

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

python

Возможность программы исследовать и модифицировать собственную структуру и поведение во время выполнения. Позволяет работать с объектами, типами, функциями и модулями, чьи имена или структуры неизвестны заранее до выполнения кода.

Основные возможности:

  • Получение информации о типе/объекте:
    • type() - получить тип объекта.
    • isinstance() - проверить, является ли объект экземпляром класса или подклассом.
    • issubclass() - проверить, является ли один класс подклассом другого.
  • Доступ к атрибутам:
    • getattr(obj, name[, default]) - получить значение атрибута.
    • setattr(obj, name, value) - установить значение атрибута.
    • hasattr(obj, name) - проверить наличие атрибута.
    • delattr(obj, name) - удалить атрибут.
  • Доступ к документации:
    • help() - интерактивная справка.
    • __doc__ - доступ к docstring объекта.
  • Выполнение кода:
    • eval(expression[, globals[, locals]]) - выполняет строку как выражение Python.
    • exec(object[, globals[, locals]]) - выполняет строку или объект кода.
  • Исследование пространства имен:
    • dir([object]) - список имен в текущем пространстве имен или атрибутов объекта.
    • globals() - словарь глобальных переменных текущего модуля.
    • locals() - словарь локальных переменных текущей функции или модуля.

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

python

Register or sign in to get access to full answers for all questions from the question bank.

reflectiontype-systemmetaprogrammingintrospectiondynamic-types