В каких ситуациях я хотел бы использовать один над другим?
В чем разница между:
>>> import inspect
>>> print(inspect.getouterframes(inspect.currentframe()))
[(<frame object at 0x8fc262c>, '<stdin>', 1, '<module>', None, None)]
и
>>> import traceback
>>> traceback.extract_stack()
[('<stdin>', 1, '<module>', None)]
Update:
Другой:
>>> import sys
>>> print(sys._getframe().f_trace,sys._getframe().f_code)
(None, <code object <module> at 0x8682a88, file "<stdin>", line 1>)
Я не понимаю здесь нюансов:
- Стековая рамка
- Объект кадра
- Трассировка стека