Я пытаюсь проверить несколько аргументов 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 и проверить его тип, затем передать остаток его родителю, но сделать это очень гибко и чисто, так как это масштабируется.
Есть предложения?