Python 获取实例的变量名

Python 获取实例的变量名,python,introspection,Python,Introspection,Python实例能否获取用于访问对象的变量的名称 此示例代码显示了我需要的内容: foo=MyClass() foo.get_name() --> 'foo' bar=foo bar.get_name() --> 'bar' 我知道这是黑魔法,不是干净的代码。我只是想知道这是否可能 我知道bar.\uuuuu name\uuuuu返回名称,但我需要在自己的方法中使用它 如何实现get\u name() 这不是答案为\uuuu name\uuuu的问题的重复。如果对象被多个名称引用

Python实例能否获取用于访问对象的变量的名称

此示例代码显示了我需要的内容:

foo=MyClass()
foo.get_name() --> 'foo'

bar=foo
bar.get_name() --> 'bar'
我知道这是黑魔法,不是干净的代码。我只是想知道这是否可能

我知道
bar.\uuuuu name\uuuuu
返回名称,但我需要在自己的方法中使用它

如何实现
get\u name()


这不是答案为
\uuuu name\uuuu

的问题的重复。如果对象被多个名称引用,该怎么办?或者与其他实例一起在列表中引用?Python中的名称实际上只是标记,如果需要这样做,可能是做错了什么。@jornsharpe上面的示例包含了对“如果对象被多个名称引用,该如何处理?”问题的答案。它包含应该发生的事情,我不知道解决方案。但是您的
get\u name
方法将根据调用的变量为同一实例返回不同的结果。那么
MyClass().get_name()
lst=[MyClass()]呢;lst[0]。获取_name()
?正如乔恩所建议的,你需要这个做什么?也许有更好的方法,例如使用字典。@guettli如果你解释一下为什么你觉得有必要这样做,也许会有帮助?你想达到什么目标?这样我们就可以提供更好的整体解决方案。如果您可以实现
get_name()
,您将如何处理它?