0
在基类构造函数中,我需要知道哪些派生类实例化了。基类是一个连接到mongo的db类,每个派生类表示一个集合对象。我在基类构造函数中创建了mongo连接,在那里我需要知道我将在该特定实例中处理的集合的名称。了解在基类构造函数中实例化哪个派生类
在基类构造函数中,我需要知道哪些派生类实例化了。基类是一个连接到mongo的db类,每个派生类表示一个集合对象。我在基类构造函数中创建了mongo连接,在那里我需要知道我将在该特定实例中处理的集合的名称。了解在基类构造函数中实例化哪个派生类
更可靠的方法是简单地将参数传递给基础构造函数。这样,你就没有与子类或其名称的耦合。你可以在没有在基类中打破了功能,甚至子类的子类:
class BaseModel:
def __init__ (self, collectionName):
self.connection = createConnection(collectionName)
class MyModel (BaseModel):
def __init__ (self):
super().__init__('MyModel')
除此之外,为self
传递的对象已经是一个合适的实例,所以你可以做任何你想做的事情,要弄清楚它的类型。