我注意到sqlite3-library仍然使用__conform__-method来调整对象以便在数据库中存储.
然后你需要给你的类一个
__conform__(self, protocol)必须返回转换值的方法.
这似乎遵循PEP 246,它指定了__conform__方法,但它被拒绝了;
我拒绝接受这个PEP.即将发生的事情要好得多; 现在说出确切的内容还为时过早,但它不会过于接近这个PEP中的提议,所以最好开始一个新的PEP.GVR.
PEP 246是使用特定名称实现特定设计模式(测试传入对象是否遵守给定协议)的建议。该提案如果被接受,将为 Python 语言添加一个新的特殊方法 ( __conform__),以及一个新的内置函数 ( adapt)。
PEP 的决定只是拒绝标准化。它并不禁止任何 Python 包设计者在其代码内部创建和使用此类模式/命名约定。这类似于 sqlite3 开发人员在命名方法Cursor而fetchone()不是fetchnext(). 他们可以在合理和实用的范围内以自己喜欢的方式命名/设计其封装组件。
更新-根据 Eric Snow 的说法,关于承诺即将到来的“更好的东西”:
当时它指的是泛型函数(la PEP 3124:重载、泛型函数、接口和适应)。然而,最终是抽象基类(PEP 3119)进入了这个领域。
| 归档时间: |
|
| 查看次数: |
227 次 |
| 最近记录: |