Итак, через некоторое время назад и вперед я наконец нашел решение своей проблемы.
Поскольку Matthias
предложил использовать глобальный поиск объекта, я решил использовать inspect, чтобы добавить его сам, например:Итак:
Назначение
def __enter__(self):
inspect.stack()[1][0].f_globals["_ExampleName"] = self
Извлечение (исправлено)
@staticmethod
def _find_example():
stack = inspect.stack()
for stack_index in range(2, len(stack)):
stack_globals = inspect.stack()[stack_index][0].f_globals
if "_ExampleName" in stack_globals.keys():
return stack_globals["_ExampleName"]
Это немного «хитроумно», так как проверка не предназначена для использования в производственной среде, Однако работает и решает мою проблему