我正在使用带龙卷风的马达。我有以下课程:
class N():
def __init__(self,collectionName host='localhost', port=27017):
self.con=motor.MotorClient(host,port)
self.xDb=self.con.XDb
setattr(self,collectionName,self.xDb[collectionName])
这实际上是我想要扩展的父类。孩子班会打电话给这个班级' init 设置collectionName。问题是我在本课程中也有其他一些方法。
@tornado.gen.coroutine
def dropDB(self):
yield self.xDb.drop_collection(self.COLLECTION??)
以上内容被打破是因为我在 init 中动态设置了集合,这是我可以确定自我的方式。变量我设置在基本方法中使用?
答案 0 :(得分:2)
设置另一个变量:
class N():
def __init__(self, collectionName, host='localhost', port=27017):
# ... your existing code ...
self.collectionName = collectionName
@tornado.gen.coroutine
def dropDB(self):
yield self.xDb.drop_collection(self.collectionName)
由于drop_collection
采用名称或MotorCollection对象,因此您可以通过其他方式将此数据存储在self
上,但我展示的方式可能最简单。