How to use inspect to get the caller’s info from callee in Python?

The caller’s frame is one frame higher than the current frame. You can use inspect.currentframe().f_back to find the caller’s frame.
Then use inspect.getframeinfo to get the caller’s filename and line number.

import inspect

def hello():
    previous_frame = inspect.currentframe().f_back
    (filename, line_number, 
     function_name, lines, index) = inspect.getframeinfo(previous_frame)
    return (filename, line_number, function_name, lines, index)

print(hello())

# ('/home/unutbu/pybin/test.py', 10, '<module>', ['hello()\n'], 0)

Leave a Comment