Это не возможно (по крайней мере, не во всех случаях и не без грязных трюков). В вашем примере A
является ссылкой на объект типа Foo
. Объект не знает, как хранятся ссылки на него. Если вы пишете:
A = Foo(args)
B = A
затем A
и B
как ссылаться на один и тот же объект, и совершенно неотличимы, так что вы не смогли найти какой был использован для проведения первой ссылки на объект. Конечно, вы могли бы сканировать globals()
для ссылки на объект, и тогда вы найдете A
и B
. Однако, если вы del A
, все следы A
исчезнут.
Что вы пытаетесь сделать? Если бы вы объяснили прецедент, возможно, мы могли бы предложить альтернативное решение, чем то, что вы просили.
Некоторые объекты даже не имеют * any * name - 'mylist.append (Foo (args))' просто накладывает объект на конец mylist, не имея собственного имени вообще. – PaulMcG