关于Python的一些基本说明?

时间:2011-01-29 13:55:03

标签: python jython

昨晚我遇到了一个名为Jython的术语,这对我来说是个新手,所以我开始阅读它只是为了增加我对Python的困惑。我也从未真正使用过Python。所以这就是我感到困惑的事情。

  1. Python is implemented in C - 这是否意味着解释器是用C编写的,还是解释器将Python源代码转换为C?

  2. CPython只不过是最初的Python&这个词只是为了以后将它与Jython区分开来 - 真或假?

  3. 现在Python是用C实现的(不太确定这意味着什么),但这是否意味着python可以与任何C代码无缝集成。

  4. Jython是一种新的编程语言,还是它的语法和语法?其他编程结构看起来与原始python完全相似?或者它只是可以与java代码集成的python?

  5. 如果上述问题都没有回答Python和&之间的差异。 Jython,这是什么?

4 个答案:

答案 0 :(得分:11)

“Python”是语言本身的名称,而不是特定解释器实现的名称,就像“C”是编程语言的名称而不是特定编译器的名称一样。

“CPython”是用C语言编写的Python语言解释器的实现。它将Python源代码编译为字节代码并解释字节代码。它是Python语言中最古老的参考实现。

“Jython”是Python语言的另一种实现。它将Python代码转换为Java字节代码,可以在Java虚拟机上执行。

答案 1 :(得分:7)

  1. 前者。
  2. 我想是的。严格来说,“Python”仅指语言(无论实现如何) - 但除非区别重要(例如,在讨论实现细节时),它也可以指实现。 “CPython”是最古老,最广泛使用的实现的明确名称,是事实上的标准。
  3. 嗯,不是很无缝。处理Python对象的C代码必须与PyObject *兼容,并使用CPython提供的辅助功能来转换,例如一个Python整数到C int。同样,C代码必须包含函数获取和返回PyObject *,将函数和元数据暴露给解释器等。您还可以使用例如ctypes用于调用本机代码(尽管通常很痛苦),SWIG等自动化包装或Cython以Python-C交叉语言编写C模块。
  4. 这是Python的另一种实现,即相同的语言。主要区别在于代码在JVM上运行,因此可以轻松地与Java(或Scala或Closure或任何其他JVM语言)集成。
  5. Python是一种语言。 Jython是该语言的一种实现。你是否要求C和GCC之间的区别?

答案 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集成。