> **Источник:** https://python-all.ru/3.3/c-api/reflection.html
>
> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.

---

# Рефлексия

#### `PyObject* PyEval_GetBuiltins()`

*Возвращаемое значение: заимствованная ссылка.*

Возвращает словарь встроенных имен в текущем фрейме выполнения или интерпретатор состояния потока, если в данный момент ни один фрейм не выполняется.

#### `PyObject* PyEval_GetLocals()`

*Возвращаемое значение: заимствованная ссылка.*

Возвращает словарь локальных переменных текущего кадра выполнения или *NULL*, если ни один кадр не выполняется.

#### `PyObject* PyEval_GetGlobals()`

*Возвращаемое значение: заимствованная ссылка.*

Возвращает словарь глобальных переменных текущего кадра выполнения или *NULL*, если ни один кадр не выполняется.

#### `PyFrameObject* PyEval_GetFrame()`

*Возвращаемое значение: заимствованная ссылка.*

Возвращает кадр текущего состояния потока; он равен *NULL*, если в данный момент ни один кадр не выполняется.

#### `int PyFrame_GetLineNumber(PyFrameObject *frame)`

Возвращает номер строки, которую *фрейм* в данный момент выполняет.

#### `const char* PyEval_GetFuncName(PyObject *func)`

Возвращает имя *func*, если это функция, класс или объект экземпляра, в противном случае – имя типа *func*.

#### `const char* PyEval_GetFuncDesc(PyObject *func)`

Возвращает строку описания в зависимости от типа *func*. Возвращаемые значения: «()» для функций и методов, «конструктор», «экземпляр» и «объект». Если объединить с результатом [`PyEval_GetFuncName()`](https://python-all.ru/3.3/c-api/reflection.html#PyEval_GetFuncName), получится описание *func*.
