5
有沒有一種工具可以讓您將函數/方法註釋爲「純」,然後分析代碼以測試所述函數/方法是否無副作用?在python中強制實施副作用
有沒有一種工具可以讓您將函數/方法註釋爲「純」,然後分析代碼以測試所述函數/方法是否無副作用?在python中強制實施副作用
在Python世界中,這個問題並沒有多大意義,因爲對象在函數調用中發生了什麼會有如此多的話。
例如,你怎麼知道下面的函數是純粹的?
def f(x):
return x + 1
答案取決於什麼X是:
>>> class A(int):
def __add__(self, other):
global s
s += 1
return int.__add__(self, other)
>>> def f(x):
return x + 1
>>> s = 0
>>> f(A(1))
2
>>> s
1
雖然功能˚F長相清純,在X添加操作有遞增的小號副作用。
你*可以*做的就是檢查'f'是純粹的**假設**'type(x)== int'。因爲Python是動態類型的,所以您必須手動添加類型註釋。 – Robin