3

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

我有一个 Python 对象类:

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

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

myObjectClass = myClass()

从内部myClass,是否可以将变量 ( myObjectClass) 的“名称”作为字符串获取?

谢谢,亚当

4

3 回答 3

5

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

另外,理清你对对象实例的区别的理解。

于 2013-11-10T21:24:31.773 回答
2

除了一些骇人听闻的方式之外,这绝对是不可能的。

为什么不name给 init 添加一个参数,像这样:

def __init__(self, name):
    self.name = name

myObjectClass = myClass("myObjectClass")

这就是我实际上会这样做的方式..

于 2013-11-10T21:33:10.923 回答
0

你可以这样做:

obj = MyClass()

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

但你真的不想这样做。

于 2013-11-10T21:26:45.517 回答