Ваша догадка, к сожалению, неверна, и фактически весь вопрос выдает неверное понимание того, как работают имена Python.
Объекты Python, в общем, не знают своих имен. Это вполне понятно, если учесть, что вы можете легко назначить a=b
, и теперь a
и b
оба ссылаются на один и тот же объект. «Переменные» Python - это просто имена, которые указывают на объекты, они не содержат эти объекты в реальном смысле. Когда вы передаете аргументы функции, вы передаете базовые объекты, а не имена. Принимающая функция просто связывает их с именами, указанными в сигнатуре функции, или, в вашем случае, просто сохраняет их в args
, не называя их вообще.
Итак, когда вы спрашиваете, как получить имена, которые объекты имели в другой области видимости, вы не можете спросить сами объекты. Вероятно, есть способ сделать это, но он включает в себя изучение фреймов вызовов, и я очень сомневаюсь, что вы хотите.