2012-05-09 37 views

回答

9

在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添加操作有遞增的小號副作用。

+0

你*可以*做的就是檢查'f'是純粹的**假設**'type(x)== int'。因爲Python是動態類型的,所以您必須手動添加類型註釋。 – Robin