4

我需要一个灵活的框架,并想尝试在它的不同位置注入一些代码,只是为了即时改变行为。

由于它是一个 Java 项目,而且基本上我只限于接口和玩那些背后的实现,我认为我可能会给 Jython 一个运行,看看它会带来什么。

我的意思是,eval()它是一个强大的函数,我可以将代码添加为字符串并对其进行评估,至少在 Python 中并且出现了问题,因为它基本上可以编译为 Java ......

与 Python 相比,Jython 有哪些限制?我可以在 Python 中做哪些在 Jython 中无法做到的事情?

4

2 回答 2

4

正如前一篇文章所述,您确实希望将 CPython 与 Jython 进行比较。如前所述,Jython 的稳定版本为 2.5.3,而 alpha 版本为 2.7。这意味着 Jython 缺少某些功能。例如,从 2.5 开始,有序字典、计数器和命名元组都被添加到Collections包中。使用 Jython,您不能使用许多第 3 方 Python 库,例如 NumPy、SciPy、GeoDjango、Lxml 或任何使用 C 扩展的东西。

另一方面,Jython 有一些使用 CPython 找不到的好处。使用 Jython,您可以在标准 Java 服务器(例如 Tomcat、WebLogic 等)上部署 Django 。您可以从 Jython 代码调用现有的 Java 类。

于 2012-10-24T14:52:51.790 回答
1

考虑将 jython 与cpython进行比较,因为它们都是 python,但一个用 c 实现,另一个用 Java 实现。因此,使用 cpython 启动时间要快得多。如果您检查每个执行 hello world 示例的启动时间,cpython 执行代码的速度大约快 50 倍。Jython stable 目前使用的是 Python 2.5,它比 2 系列中的当前 python 2.7 旧得多,并且他们没有 python3 的实现。所以你会错过那里的一些功能。

$ time jython -c "print 'hello'"
hello
real    0m1.641s
$ time python -c "print 'hello'"
hello
real    0m0.026s
于 2012-10-23T17:15:20.717 回答