了解在基类构造函数中实例化了哪个派生类

时间:2016-10-31 07:18:17

标签: python

在基类构造函数中,我需要知道哪些派生类已实例化。基类是连接到mongo的db类,每个派生类表示一个集合对象。我在基类构造函数中创建mongo连接,在那里我需要知道我将在该特定实例中处理的集合的名称。

1 个答案:

答案 0 :(得分:1)

更简单的方法是简单地将参数传递给基础构造函数。这样,您就没有与子类或其名称的耦合。您甚至可以在不破坏基类功能的情况下继承子类:

class BaseModel:
    def __init__ (self, collectionName):
        self.connection = createConnection(collectionName)

class MyModel (BaseModel):
    def __init__ (self):
         super().__init__('MyModel')

除此之外,作为self传递的对象已经是一个正确的实例,所以你可以随心所欲地做任何事情,找出它的类型。