在 python 中强制执行副作用

2024-02-28

是否有一种工具可以让您将函数/方法注释为“纯”,然后分析代码以测试所述函数/方法是否没有副作用?


在 Python 世界中,这个问题没有多大意义,因为对象对函数调用中发生的情况有很大的发言权。

例如,你如何判断以下函数是否是纯函数?

def f(x):
   return x + 1

答案取决于什么x is:

>>> 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.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 python 中强制执行副作用 的相关文章

随机推荐