昨晚我遇到了一个名为Jython的术语,这对我来说是个新手,所以我开始阅读它只是为了增加我对Python的困惑。我也从未真正使用过Python。所以这就是我感到困惑的事情。
Python is implemented in C
- 这是否意味着解释器是用C编写的,还是解释器将Python源代码转换为C?
CPython只不过是最初的Python&这个词只是为了以后将它与Jython区分开来 - 真或假?
现在Python是用C实现的(不太确定这意味着什么),但这是否意味着python可以与任何C代码无缝集成。
Jython是一种新的编程语言,还是它的语法和语法?其他编程结构看起来与原始python完全相似?或者它只是可以与java代码集成的python?
如果上述问题都没有回答Python和&之间的差异。 Jython,这是什么?
答案 0 :(得分:11)
“Python”是语言本身的名称,而不是特定解释器实现的名称,就像“C”是编程语言的名称而不是特定编译器的名称一样。
“CPython”是用C语言编写的Python语言解释器的实现。它将Python源代码编译为字节代码并解释字节代码。它是Python语言中最古老的参考实现。
“Jython”是Python语言的另一种实现。它将Python代码转换为Java字节代码,可以在Java虚拟机上执行。
答案 1 :(得分:7)
PyObject *
兼容,并使用CPython提供的辅助功能来转换,例如一个Python整数到C int
。同样,C代码必须包含函数获取和返回PyObject *
,将函数和元数据暴露给解释器等。您还可以使用例如ctypes
用于调用本机代码(尽管通常很痛苦),SWIG等自动化包装或Cython以Python-C交叉语言编写C模块。答案 2 :(得分:3)
a)Python是一种编程语言。 Python代码的解释器是使用其他编程语言(如C)实现的(PyPy甚至使用Python本身实现一个,我相信)。
b)CPython,又名Classic Python,是参考实现,用C编写.Jython是用Java编写的Python解释器。
c)在Python中使用C库非常简单,例如使用ctypes模块。
d)见b。
e)见a和b。
答案 3 :(得分:1)
a)默认和最广泛使用的语言实现是用c语言编写的CPython。例如,在Python中实现了Python - http://codespeak.net/pypy/dist/pypy/doc/
b)CPython是C中的默认python实现.Jython是Java中的实现。
c)是的。
d)Jython是用Java编写的Python语言的实现。
e)CPython很容易与C集成,Jython很容易与Java集成。