关于Python的一些基本说明?

Eso*_*cMe 11 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完全相似?或者只是python可以与Java代码集成?

  5. 如果上述问题都没有回答Python和Jython之间的区别,那么它是什么?

Sve*_*ach 11

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

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

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


小智 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之间的区别?