首页 > 解决方案 > Python3:静态检查类型。协议类实现

问题描述

我想使用typing.Protocol在我的代码中创建接口,但有一点问题。

PEP 544 抄写员“此外,广泛使用 ABC 可能会带来额外的运行时成本。”

因此,如果一个类不会被标记为某个协议的实现,那么将来代码检查将花费更多时间并且不需要静态类型检查。我发现只有一种方法可以通过类继承语义制作这样的“符号”。但是继承只是从协议中创建一个标准的 ABC 实例,并增加了一些运行时成本。

是否有一种现有的方法可以将此显式表示法仅用于静态类型检查而不用于运行时?

可能是这样的:

...
@implements(MyProtocol)
class MyImplClass:
...

标签: python-3.xmypy

解决方案


推荐阅读