Функция Python имеет объект кода __code__.
A sys.settrace trace frame имеет объект кода f_code.
Для вызовов вызовов, которые являются функциями, как я могу получить объект функции (и его член __annotation__)?
До сих пор, в результате проб и ошибок, я:
if hasattr(frame.f_globals.get(frame.f_code.co_name),"__annotations__"):
Это, похоже, работает для функций, но не для функций класса; Хуже того, он смешивает функции-члены класса с функциями верхнего уровня с тем же именем.
(Я на Python 3.2.3 (Xubuntu). Я вижу, что модуль Python 3.3 inspect имеет функцию signature, это вернет аннотация для объекта кода или ему тоже нужен объект функции?)