python - Monkeypatch python的解析

标签 python python-3.x sympy

大家好,

我正在使用 sympy 进行研究,发现自己写了很多像 Integer(1)/k 这样的东西(实际上,这已经是 Integer(1)/Integer( k)).

我想知道是否有一种方法可以将 python 的默认整数类与 sympy 中的整数类“monkeypatch”,这样我就可以只写 1/k

我尝试过重载 __builtins__.int,但它并没有改变我想要的,只是改变了像 int(4) 这样的调用(另外还有一个最大递归问题,因为sympy 的 Integer 类使用了 int,但这是不同的)。

有没有一种简单的方法(比如,没有 C 代码)来改变 python 解析代码的方式?

提前致谢:)

最佳答案

这似乎很难在不破坏其他一切的情况下做到。您看到的最大递归问题是第一个症状。

我可以建议一个更简单的方法:运行

I = sympy.Integer

作为你在文件/库中做的第一件事,然后你可以调用

I(1) / k

这更容易写。

关于python - Monkeypatch python的解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47619527/

相关文章:

python - 使用嵌套 for 循环的反元音程序

python - 在 Sphinx 文档中保留包装/修饰的 Python 函数的默认参数

python-3.x - 如何使用 asyncio 下载 s3 bucket 上的文件

python - 如果条件在 python 中的循环内

sympy - 我如何告诉 SymPy 有些项是正数,然后使 SymPy 将 `sqrt(x^2)` 简化为 `x`,其中 `x` 可能是一个复杂的项?

python - 谷歌应用引擎 : Get entity key to use in a template

python从一个容器重定向到另一个容器

python - pipenv需要python 3.7,但已安装的版本是3.8,无法安装

python - 在python中计算积分

sympy - 需要能够在 sympy.solve 中使用的 log2(x) 的 sympy 函数