gpt4 book ai didi

python - 为什么 sqlite3 仍然使用 __conform__?

转载 作者:IT王子 更新时间:2023-10-29 06:26:43 26 4
gpt4 key购买 nike

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

Then you need to give your class a method __conform__(self, protocol) which must return the converted value.

^ Python docs 12.6.6.2.1 ^

这似乎遵循PEP 246 ,它指定了__conform__-method,但已被拒绝;

I'm rejecting this PEP. Something much better is about to happen; it's too early to say exactly what, but it's not going to resemble the proposal in this PEP too closely so it's better to start a new PEP. GvR.

^ Rejection notice of PEP 246 ^

现在,官方 Python 库怎么可能实现 a standard已在明确 rejected 的建议中定义?

最佳答案

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

PEP 决定只是拒绝标准化。它不禁止任何 Python 包设计者在他们的代码内部创建和使用这样的模式/命名约定。这类似于 sqlite3 开发人员将 Cursor 方法命名为 fetchone() 而不是 fetchnext() 的自由度。他们可以在合理和实用的范围内按照自己喜欢的方式命名/设计他们的包组件。

更新 - according to Eric Snow ,关于 promise 即将到来的“更好的东西”:

At the time it referred to generic functions (a la PEP 3124: Overloading, Generic Functions, Interfaces, and Adaptation). However, ultimately it was Abstract Base Classes (PEP 3119) that slid into this space.

关于python - 为什么 sqlite3 仍然使用 __conform__?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49673192/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com