Вопрос по... хмм... интроспекции, наверное...
Задача:
Есть callable объект, ну, например, функция:
Ecть блок, в котором она вызывается, ну например, это тоже функция:
Необходимо внутри func узнать имена объектов в контексте функции block, ссылки на которые переданы в func в качестве аргументов (в нашем случае, это будут строки: 's' для arg1 и 'i' для arg2). Ну например, вытащить как-то (как?) locals() и globals() в контексте block.
Я понимаю, что можно все сделать через модуль parser, но по ряду причин крайне желательно сделать это без разбора кода на уровне исходников.
Буду крайне признателен за ответ, даже если он будет заключаться в доказательстве отсутствия решения без парсинга.
Есть callable объект, ну, например, функция:
def func(arg1, arg2):
print id(arg1), id(arg2)
Ecть блок, в котором она вызывается, ну например, это тоже функция:
def block(arg):
s,i = 'a',1
func(s,i)
Необходимо внутри func узнать имена объектов в контексте функции block, ссылки на которые переданы в func в качестве аргументов (в нашем случае, это будут строки: 's' для arg1 и 'i' для arg2). Ну например, вытащить как-то (как?) locals() и globals() в контексте block.
Я понимаю, что можно все сделать через модуль parser, но по ряду причин крайне желательно сделать это без разбора кода на уровне исходников.
Буду крайне признателен за ответ, даже если он будет заключаться в доказательстве отсутствия решения без парсинга.
