Python 类型提示 - 指定 dict 子类的键、值类型

Mr_*_*s_D 3 python type-hinting python-2.7

说我有

class A(dict): pass
Run Code Online (Sandbox Code Playgroud)

有没有办法指定 A 的键和值的类型?是否可以通过继承类型的方式来完成 - 所以class B(A)会继承例如 key 的类型值并且能够覆盖 value 的类型?

理想情况下,这将通过pep-0484 中引入的类型提示来完成- 但请注意,我使用的是 python 2,所以我需要一个带有类型注释的解决方案。然而,如果这是不可能的,则涉及元类或任何其他黑客的解决方案是可以接受的。

Mar*_*ers 5

与您的类的所有类型交互都通过方法进行,因此请注释这些方法。A.__setitem__(self, key, value):被调用以设置键值对,并且可以进行注释以指示预期的类型。

任何有效的 PEP 484 注释都可以在这里完成,如果您需要 Python 2 兼容性,包括类型注释。

B除非 B 覆盖这些方法,否则这些注释将被继承。