什么是Jython,它有用吗?

TIM*_*MEX 28 python java jython

我知道Python,但Jython是什么?

  • 我什么时候需要Jython?
  • 有什么缺点?
  • 我认为它很慢?

请详细说明!谢谢.

Joe*_*oey 27

引用维基百科:

Jython是JPython的继承者,是用Java编写的Python编程语言的实现.

至于它可能有什么用途:

Jython程序可以无缝导入和使用任何Java类.除了一些标准模块,Jython程序使用Java类而不是Python模块.

Jython,IronPython和CPython的性能测量表明,对于某些具有大型数据集的情况,Jython和IronPython都优于CPython.

  • Jython不像Java那样编译成字节码.字节码完成了CPython所做的所有精彩动态运行时事务,因此比Java慢得多. (8认同)

Ron*_*Ron 9

如果您了解Python并且已经采用了"pythonic"方式,那么Jython允许您将该原理引入JVM堆栈.如果你这样做,它不仅仅是添加脚本功能.

在我们最新的项目中,所有的自定义和业务逻辑都是在Jython中构建的,同时我们仍然可以利用一些经过试验和测试的Java库,如Solr,Jasperreports,Quartz,Jetty,Velocity等等.

它确实被编译为字节码,但是,正在添加一个额外的层,但与使用ORM而不是直接JDBC没有什么不同.

你在生产力方面获得的成就远远超过了表现中的微小损失.

在服务器端,Jython很少成为瓶颈.对于迷你桌面应用程序,可能存在问题,但很大程度上取决于您要执行的操作.

最新的JDK以及像Jetty或Tomcat这样的容器非常成熟和稳定,在许多情况下,添加Python可以提供两全其美的优势.


Mic*_*rdt 6

我什么时候需要Jython?

当您想要在Python中编程但需要(或希望)在Java虚拟机上运行结果或使用现有的Java组件时.

有什么缺点.

Jython可能与Python不是100%兼容,但任何不兼容性都会被视为错误.如果您以后想要/需要在CPython上运行,则必须重写使用Java组件的任何代码.

我认为它很慢?

这一直取决于您的具体用例.在某些情况下,它实际上可能比CPython更快; 当然这取决于你运行的特定JVM - 这些总是变得更好.


小智 5

另外两个原因:

  • 将脚本嵌入到大型Java应用程序中。
  • 使用Java线程在Jython中编写多线程程序。