python - 在 python 中强制执行副作用

标签 python functional-programming code-analysis

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

最佳答案

在 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/

相关文章:

python - 显示基于元组的排序列表并在字典中循环

python - 如何在 FastAPI 中禁止空参数?

javascript - 自调用函数的括号符号是否在 Javascript 中有用?

Haskell:随机数 - IO 操作的 Int

c# - 代码分析规则异常情况

c# - 用方法替换 C# 代码中的所有变量

c# - 如何在静态代码分析器实用程序中找到可能出现 NullReferenceException 的点?

python - 错误 : Singular Matrix

python - 为什么我的正则表达式不能正确返回 group(0)?

functional-programming - 为什么 ocamlc 说我不匹配 {} 而我没有?