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