【发布时间】:2026-01-14 21:50:01
【问题描述】:
我正在尝试验证一些 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 列表中弹出一个参数并检查它的类型,然后将剩余部分传递给它的父级,但是随着规模的扩大,以一种非常灵活和干净的方式执行此操作。
有什么建议吗?
【问题讨论】:
标签: python inheritance decorator static-typing