我正在尝试验证一些 python 参数。在我们在 Python 3.0 中获得新的静态类型之前,最好的方法是什么。
这是我正在尝试的示例:
class A(object):
@accepts(int, int, int)
def __init__(a, b, c):
pass
class B(A):
@accepts(int, int, int, int)
def __init__(a, b, c, d):
A.__init__(a, b, c)
正如您所看到的,装饰器很好地对我的类的输入进行类型检查,但是我必须为第二个类定义所有参数,当我有多个继承级别时,这会变得非常讨厌。我可以使用 kwargs 取得一些成功,但它不如上面的类型检查方法那么好。
本质上,我想从 kwargs 列表中弹出一个参数并检查它的类型,然后将其余部分传递给它的父级,但是随着规模的扩大,以一种非常灵活和干净的方式执行此操作。
有什么建议么?