TGViewer
Python Заметки Python Заметки @pythonotes · 2.2K subscribers
Post #137 760
Как узнать кто вызвал функцию?

Порой требуется выяснить, кто именно вызвал конкретную функцию?
Конечно, можно запустить дебаг и выполнять построчно логику отслеживая откуда мы пришли в конкретную точку. Но это долго.

Чтобы просто узнать имя функции которая вызвала текущую функцию можно сделать так.

# myscript1.py
import inspect

def function1():
# распечатаем имя вызывающей функции
print('Called from:', inspect.stack()[1][3])

def function2():
function1()

function2()

Запускаем

python3 myscript1.py
Called from: function2

Но так мы увидим лишь имя предыдущей функции. А как узнать полный список вызовов?
Traceback удобен тем, что показывает цепочку вызовов, которая привела к ошибке.
Но модуль traceback также позволяет распечатать стек вызовов не выбрасывая исключение.

# myscript2.py
import traceback

def function1():
...
traceback.print_stack()
...

def function2():
function1()

function2()

Запускаем файл

python myscript2.py
File "myscript.py", line 9, in <module>
function2()
File "myscript.py", line 7, in function2
function1()
File "myscript.py", line 4, in function1
traceback.print_stack()

#tricks
More from @pythonotes
  1. Sep 21, 2026­ WebAssembly это мощная технология позволяющая загружать практически любое приложение в б…
  2. Aug 17, 2026Не так давно столкнулся с API который в ответе с ошибкой присылал только статус-код. Без п…
  3. Jul 20, 2026У меня основная ОС это Linux. Но нередко требуется делать сборку клиента под Windows. Соби…
  4. Jul 13, 2026В прошлый раз был пример с понижением привелегий процесса. Проблема в том, что обратно под…
  5. Jul 6, 2026Модуль pwd может использоваться для считывания информации о пользователях из базы данных п…
  6. Jun 22, 2026Недавно я реализовал Multi Tenancy систему на FastAPI + SQLAlchemy и пересобрал её в небол…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →