Python在編譯時不檢查類型,因爲它不能,至少在某些情況下不能。但是有沒有人想出一種基於用戶額外註釋的編譯時類型檢查機制?像pylint這樣的作者使用額外的保證?我想的是這樣的:Python編譯時類型檢查
#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)
所以這是一個str
。有沒有什麼產品可以做類似的事情?
我的理解是PyPy確實有點像這樣,但通常人們不會嘗試去Python Python,他們只是使用嚴格類型的語言。另外,Python中的「編譯時」實際上並不存在。您可以進行靜態或動態代碼分析,並且可以將pyc轉換爲編譯,但是在基本級別上,任意代碼可以在運行時更改有關係統的任何內容。 –