如何获取 Python 对象类的变量名



我想知道这是否可能/如何可能。

我有一个 Python 对象类:

class myClass(object):
    def __init__(self):
        ...do something

然后我创建该对象的实例:

myObjectClass = myClass()

myClass中,是否可以将变量(myObjectClass)的"名称"作为字符串?

谢谢亚当

不,这是不可能的,以任何合理的方式,而且多个变量可能指向同一个对象。就局部变量而言,这也根本不可能。无论你实际要解决什么问题,这都是错误的方法。

另外,整理你对对象实例之间区别的理解。

这绝对是不可能的,除了一些黑客方式。

为什么不直接添加一个name参数到 init,如下所示:

def __init__(self, name):
    self.name = name
myObjectClass = myClass("myObjectClass")

这就是我实际的做法。

你可以做:

obj = MyClass()
the_globals = globals()
for o in the_globals:
    if the_globals[o].__class__.__name__ == 'MyClass':
        print 'yay', o

但你真的不想这样做。

最新更新