Я думаю, что это невозможно сделать.
Макрос отладки, который вы опубликовали, работает, потому что он раскрывается перед компиляцией, во время предварительной обработки, когда вы знаете имя переменной. Как будто ты пишешь все эти cout
самостоятельно.
Python не имеет препроцессора (AFAIK), есть внешние инструменты, которые делают аналогичные вещи (pyp и другие), но вы не можете определить макрос со стандартным языком.
Так что вы должны делать свой трюк во время выполнения. Ну, во время выполнения вы не знаете «имя» переменной, потому что переменная является просто ссылкой на объект, когда вы вызываете метод, который вызываете его для объекта, а не для «переменной». Может быть много переменных, которые указывают на этот объект, как объект узнает, какая переменная использовалась для вызова метода?