Python 为什么sympy.simplify会更改随机状态
以下测试失败:Python 为什么sympy.simplify会更改随机状态,python,python-3.x,sympy,Python,Python 3.x,Sympy,以下测试失败: def test_sympy_simplify(): import sympy import random random.seed(42) state = random.getstate() expr = "sin(x)**2 + cos(x)**2" sympy.simplify(expr) assert state == random.getstate() 为什么会失败?为什么简化需要随机性? 在多次运行此代码段时,状
def test_sympy_simplify():
import sympy
import random
random.seed(42)
state = random.getstate()
expr = "sin(x)**2 + cos(x)**2"
sympy.simplify(expr)
assert state == random.getstate()
为什么会失败?为什么简化需要随机性?
在多次运行此代码段时,状态的变化似乎也有所不同。我曾经研究过这个问题: 这是因为导入Symphy将导入其测试帮助程序,而测试帮助程序的定义如下:
class SymPyTests(object):
def __init__(self, ..., seed=random.random()):
#...
self._seed = seed
阅读博客文章,了解我是如何发现它的,以及错误喜剧的其他方面