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

How to get the variable name of a Python object class

本问题已经有最佳答案,请猛点这里访问。

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

我有一个python对象类:

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

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

1
myObjectClass = myClass()

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

谢谢,亚当


不,这是不可能的,以任何合理的方式,而且多个变量可能指向同一个对象。在局部变量方面也是完全不可能的。不管你到底想解决什么问题,这都是错误的解决方法。

另外,整理一下您对对象或实例和类之间的区别的理解。


这绝对不可能,除了一些下流的方式。

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

1
2
3
4
def __init__(self, name):
    self.name = name

myObjectClass = myClass("myObjectClass")

我就是这样做的。


你可以这样做:

1
2
3
4
5
6
obj = MyClass()

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

但你真的不想这样做。