我想知道这是否可行/如何实现。
我有一个Python对象类:
class myClass(object):
def __init__(self):
...do something
然后我创建该对象的实例:
myObjectClass = myClass()
从myClass
开始,是否可以将变量(myObjectClass
)的“名称”作为字符串?
谢谢, 亚当
答案 0 :(得分:5)
不,不可能以任何合理的方式,并且多个变量也可能指向同一个对象。就局部变量而言,它根本不可能。无论你真正试图解决什么问题,这都是错误的方法。
另外,理解您对对象或实例与类之间差异的理解。
答案 1 :(得分:2)
除了一些hackish方式之外,这绝对不可能。
为什么不在init中添加name
参数,如下所示:
def __init__(self, name):
self.name = name
myObjectClass = myClass("myObjectClass")
这就是我实际做的事情..
答案 2 :(得分:-1)
你可以这样做:
obj = MyClass()
the_globals = globals()
for o in the_globals:
if the_globals[o].__class__.__name__ == 'MyClass':
print 'yay', o
但你真的不想这样做。