我正在开展一个项目(http://github.com/lusis/vogeler)。其中一个目标是提供可交换的持久性和消息传递后端。我认为我有一个可行的模型,但希望从Python人群中获得关于最佳实践的意见。您可以在此处查看新实施:
http://github.com/lusis/vogeler/blob/master/vogeler/db/generic.py
couch2.py是我的通用子类。
本质上,泛型类提供了一组通用的接口(createdb,usedb,create,update),它们调用私有方法,如_create_db,_use_db等。
我的期望是数据库特定的东西将继承GenericPersistence并覆盖私有方法。这被认为是不好的形式?一般来说,重写私有方法感觉有点奇怪,但最终结果是它有效。我只是想确保我没有打破关于Python中子类化的某种不成文的合同。
答案 0 :(得分:0)
我认为,按照惯例,单个下划线是一个暗示,该属性是一个可能在将来更改的实现细节。子类不应覆盖或调用强调的方法,因为它们的存在可能不依赖。
所以,我会将强调的方法改为钩子:_update
- > update_hook
并要求开发人员覆盖* _hook方法。