[英]Python: Get name of instantiating class?
例:
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的名字。 这甚至可能吗? 谢谢。
除非将“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
这会为您创建类之间的反向链接
在__init__()
方法中为相关类设置一个变量,稍后再检索该变量。
如果你问更好的问题,你会得到更好的答案。 这个还不太清楚。
你的问题与这里的答案非常相似。 请注意,您可以确定在其构造函数中创建实例的人员,但之后不会。 无论如何,最好的方法是明确地将创建者传递给构造函数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.