我想知道这是否可能/如何可能。
我有一个 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
但你真的不想这样做。