说我有
class A(dict): pass
有没有办法指定 A 的键和值的类型?是否可以通过继承类型的方式来完成 - 这样 class B(A)
将继承键的类型值,并且能够覆盖值的类型?
理想情况下,这可以通过pep-0484中引入的类型提示来完成。 - 但请注意,我使用的是 python 2,所以我需要一个带有类型注释的解决方案。然而,如果这是不可能的,涉及元类或任何其他黑客的解决方案是可以接受的。
最佳答案
与类的所有类型交互都通过方法进行,因此请对这些方法进行注释。 A.__setitem__(self, key, value):
被调用用于设置键值对,并且可以通过注释来指示期望的类型。
任何有效的 PEP 484 注释都可以在此处执行,包括类型注释(如果您需要 Python 2 兼容性)。
除非 B 重写这些方法,否则这些注释将继承给 B
。
关于Python类型提示——为dict子类指定key、value类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36811192/