Python:如何获取实例化类的名称?
举个例子:
class Class1:
def __init__(self):
self.x = Class2('Woo!')
class Class2:
def __init__(self, word):
print word
meow = Class1()
我怎么才能得到创建了这个 self.x 实例的类名?换句话说,如果我有这个实例 self.x,我该怎么得到 'Class1' 这个名字?用 self.x.__class__.__name__
只会给我 Class2 的名字。这可能吗?谢谢。
3 个回答
0
你的问题跟这里的回答很相似。需要注意的是,你可以在对象的构造函数里确定是谁创建了这个实例,但在之后就无法知道了。总的来说,最好的方法是把创建者的信息直接传入构造函数里。
0
在你想要的类里面,在__init__()
方法中设置一个变量,然后你可以在后面的代码中取用这个变量。
如果你想要更好的答案,记得提问的时候要更清楚。这次的问题有点模糊。
6
你不能这样做,除非你把一个'creator'的实例传递给Class2()的构造函数。比如:
class Class1(object):
def __init__(self, *args, **kw):
self.x = Class2("Woo!", self)
class Class2(object):
def __init__(self, word, creator, *args, **kw):
self._creator = creator
print word
这样做会在这两个类之间建立一个反向链接。