Python не проверяет типы во время компиляции, потому что он не может этого делать, по крайней мере, в некоторых случаях. Но придумал ли кто-нибудь механизм проверки типов во время компиляции на основе дополнительных аннотаций пользователя? Что-то вроде pylint, который использует дополнительные гарантии автора? Я думаю о чем-то вроде:
Код: Выделить всё
#guarantee(argument=int, return_type=int)
def f(x):
return x + 3
#guarantee(argument=int, return_type=str)
def g(x):
return "%d times" % x
y = f(6)
# works, z = "9 times"
z = g(y)
# error
a = f(z)
Эта программа проверки будет интерпретировать комментарии над каждой функцией и понимать, что f(x) должна принимать только int, но z происходит от g (x), так что это строка. Есть ли какой-нибудь продукт, который делает что-то подобное?
Подробнее здесь:
https://stackoverflow.com/questions/160 ... e-checking