是否有一种工具可以让您将函数/方法注释为“纯”,然后分析代码以测试所述函数/方法是否没有副作用?
最佳答案
在 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 的副作用。
关于python - 在 python 中强制执行副作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10509916/