为什么sqlite3仍然使用__conform__?

时间:2018-04-05 13:07:23

标签: python sqlite pep

我注意到__conform__ - 库仍然使用{{1}} - 方法来调整对象以便存储在数据库中。

  

然后你需要给你的类一个方法{{1}},它必须返回转换后的值。

^ Python docs 12.6.6.2.1 ^

这似乎遵循PEP 246,它指定{{1}} - 方法,但它已被拒绝;

  

我拒绝接受这个PEP。即将发生的事情要好得多;现在说出确切的内容还为时过早,但它不会过于接近这个PEP中的提议,所以最好开始一个新的PEP。 GVR。

^ Rejection notice of PEP 246 ^

现在,官方Python库如何实现已在明确a standard的建议中定义的rejected

1 个答案:

答案 0 :(得分:1)

PEP 246 是建议使用特定名称来实现特定设计模式(测试传入对象是否遵守给定协议)。该建议如果被接受,将会为Python语言(__conform__)添加新的特殊方法,以及新的内置函数(adapt)。

PEP决定只是拒绝标准化。它不禁止任何Python包设计人员在其代码内部创建和使用这种模式/命名约定。这类似于sqlite3开发人员在命名Cursor方法fetchone()而不是fetchnext()时具有的自由度。他们可以在原因和实用程序范围内随意命名/设计其包装组件。