[英]Get name of class another class is instantiated inside of in Python
是否有可能在另一个 class 中获得 python class 的名称,该名称在第一个 ZA2F2ED4F8EBC2CBB1C21A29DZ 内部实例化
让我给你举个例子。
class SubClass:
top_level_name = None # name class it is instantiated in e.g. TopLevelClass
class TopLevelClass:
subclass = SubClass()
我知道我可以写以下...
class SubClass:
def __init__(self, class_name):
self.top_level_name = class_name
class TopLevelClass:
subclass = SubClass(class_name)
def __init__(self):
self.class_name = self.__class__.__name__
但是,在初始化 class 时,无需将 class 名称作为参数传递就可以了。
这可能吗,只是一厢情愿,或者出于某种我还没有想到的原因,这是一个非常糟糕的主意。
我建议重新审视这两个类的设计。 让实例化的 class 意识到调用 class 违反了封装和抽象的设计原则。 它还创建了一个循环依赖项(在这种情况下,只有一个逻辑依赖项,因为只有 class 的名称是已知的)。 如果您使用 class 名称作为实例化 class 的某种标识符,则可以像在示例中一样在构造函数中传递 id 字符串。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.