數據庫中有張表parameters_table,裏面記錄的是產品的一些配置及可能動態變化的信息,實現索引器當然是操作此類表的最好方法
class ParameterTables(Base):
__tablename__ = 'parameters_table'
id = Column(Integer, primary_key=True, autoincrement=True)
para_name = Column(String(64), primary_key=True)
para_value = Column(String(512), nullable=False)
class ParametersManager(object):
def __init__(self, session):
self.db = session
self.paras = self.db.query(ParameterTables).all()
self.dic = {}
if self.paras is not None:
for para in self.paras:
self.dic[para.para_name] = para.para_value
def __getitem__(self, key):
if key in self.dic:
return self.dic[key]
if __name__ == "__main__":
pm = ParametersManager()
print pm["xyz"]
既然有get,就相應的有set了,只要實現函數,就可以有set的索引器可用:)
def __setitem__(self, key, value):
self.dic[key] = value
pm["xyz"] = "XYZ"