いくつかの 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)
ご覧のとおり、デコレータはクラスへの入力の型チェックを適切に実行していますが、すべての引数を 2 番目のクラスに定義する必要があり、複数レベルの継承があると非常に厄介になります。kwargs を使用してある程度の成功を収めることはできますが、上記の型チェックのアプローチほど適切ではありません。
基本的に、kwargs リストから 1 つの引数を取り出してその型をチェックし、残りをその親に渡したいのですが、これはスケーリングに応じて非常に柔軟でクリーンな方法で行います。
助言がありますか?