是否有一种工具可以让您将函数/方法注释为“纯”,然后分析代码以测试所述函数/方法是否无副作用?
问问题
708 次
1 回答
11
在 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的加法操作具有递增s的副作用。
于 2012-05-09T04:45:06.963 回答