db-api的Python类型提示

时间:2018-09-27 09:52:22

标签: python interface type-hinting

我想添加db-api类型提示,例如:

def test_connect() -> Connection :
...

知道我正在动态加载模块驱动程序(意思是,没有像“ pyodbc.Connection”这样的硬编码),并且Python中没有正式的接口协定。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您可能会在这里使用protocols

简而言之,您可以在代码库中定义一个自定义协议,其中包含任何“连接”对象必须具有的方法的签名。然后,您可以自由返回任何任意对象,只要它包含具有指定方法的那些方法即可。

最后说明:我知道mypy支持协议,但是我不确定其他类型检查器是否支持。有open PEP可以向Python类型化生态系统正式引入协议-大概是其他类型检查器在接受PEP后(如果尚未接受)会增加对协议的支持。