所以我花了很多时间试图弄清Cython
和Jython
是什么,而且我仍然(更多)对刚刚开始计算机编程的人感到困惑。我听说Cython
是一个扩展,但是.. 也是和独立的语言?
我认为我理解的是:
Cython
/ Jython
仅为Python
,您可以分别使用C
或C++
/ Java
个库一点点Cython
/ Jython
语法。
这意味着当在C
或C++
/ Java
中更有效地编写任务时,可以提高性能并提高代码可读性,并且已完成使用静态类型变量。
或Cython
/ Jython
只是某种使用有时但不是独立使用的扩展名?我的意思是,您仍然会在Python
中写下所有内容,然后,对于您宁愿使用C
或C++
/ Java
的任务,您需要请改用Cython
/ Jython
? (我知道我仍然需要安装Python和类似的东西,因为它依赖。)
因为如果它确实更好,除了它仍在开发的障碍,因为它相当新,不需要C
或C++
/ Java
完全离开,因为它们就像Python
一样简单,但与C
或C++
/ Java
一样强大?
答案 0 :(得分:7)
Jython是Java平台的Python语言的实现。 Jython 2.7 实现与CPython 2.7相同的语言,以及几乎所有的Core Python标准库模块。 (CPython是Python语言的C实现。)
编写Jython类似于编写标准Python。主要区别在于,由于它可以编译为Java字节码,因此您可以顺利地与Java库进行交互。当然它对JVM有要求,但没有全局解释器锁(Famous GIL)。
Cython是Python编程语言和扩展的Cython编程语言(基于Pyrex)的优化静态编译器
因此,Cython首先被认为是编译器。它将您的Python代码编译为C
,然后编译(使用标准C
编译器)并运行。
为了进一步促进与C/C++
的集成,它还具有扩展语法,用于指定类型,定义不同类型的函数以及与C/C++
代码的接口。这些,一方面允许Cython生成更高效的代码,绕过Python VM通常做的缓慢解释,另一方面,使Python的写入扩展在公园散步,因为您不需要熟悉Python C-API
。
所以,回答你的问题:
Cython / Jython只是Python,你可以分别使用C或C ++ / Java库,只需要一点Cython / Jython语法。
差不多,是的。 Jython 是 Python,并使用Java Libraries
基本import
语句。 Cython与Python非常相似,如你所说,使用一些语法与C/C++
接口。
这意味着当使用C或C ++ / Java编写任务更高效时,可以提高性能并提高代码可读性;这是通过使用静态类型变量来完成的。
对于Cython
,这是目标,对于Jython
则不是。这就是为什么Cython
提供扩展语法来指定类型而Jython
没有。
两种语言都是独立使用(就你的意思而言)但是,Cython通常在分析CPU绑定的Python代码并确定瓶颈之后进行部署。
答案 1 :(得分:2)
确定。 Jython是Python的一个实现,它将python源代码转换为java字节码或目标代码,就像大多数人所说的那样。所以你基本上使用python语法编写程序,但编译成目标代码时源代码的输出是java字节码
另一方面,Cython是一种实现,其中python语言中的标准模块已被翻译成C语言。所以在这里,当你基本上使用一个模块时,它是python标准模块,但为了提高效率,它的C语言或执行的代码答案 2 :(得分:1)
CPython与Jython相当。他们是Python语言的实现。 CPython是事实上的标准,用C语言编写.Jython是用Java编写的,在JVM上运行。它还允许在很大程度上访问Java生态系统。还有其他语言实现,如PyPy或Pyston。
Cython完全不同。它允许我们在C语言或Pyrex中编写Python的扩展,这是Python语言的一个子集。 Cython加快了用它编写的部件的执行速度。
答案 3 :(得分:0)
Jython是Java虚拟机上的Python语言实现,因此Jython是Python但不是CPython。 Cython是CPython的扩展,除了Syntax中的一些相似之外,与Python没有多少共同之处。