Oma Dt Asked:2020-08-10 19:41:24 +0000 UTC2020-08-10 19:41:24 +0000 UTC 2020-08-10 19:41:24 +0000 UTC Python语言的各种实现 772 我读的每一本书都说该语言有不同的实现。据我所知,标准的是CPython,但还有其他的(JPython,IronPython)。 看不懂,因为解释器的其他实现必须有自己特定的语法? python 2 个回答 Voted Best Answer hoefling 2020-08-10T20:15:01Z2020-08-10T20:15:01Z 语法没有区别——每个解释器都必须支持Python 语法才能被称为一个。口译员的区别是 代码执行速度, 模块可用性:例如,并非所有在 CPython 中实现的标准库模块在其他实现中都可用,或者具有不同的实现。用 C 语言实现部分功能的模块(“C 扩展”)通常不适用于除 CPython 之外的任何其他解释器(例如,除了 PyPy 之外没有第三方实现numpy/scipy任何地方,即使在那里也几乎添加了昨天和测试版,EMNIP), 与其他语言的桥梁。例如,Jython 可以直接导入 Java 类——这样ImportError的代码会被其他解释器抛出: from java.util import Date from java.lang import System d = Date() System.out.println(d) 同样,IronPython 知道如何使用 CLR 和 .NET: from System import DateTime, String d = DateTime.Now print String.Format("{0}", d) becouse 2020-08-10T19:55:51Z2020-08-10T19:55:51Z 语言是由句法和语法的描述定义的,通常是抽象的。 语言的实现允许将语言中的代码翻译成处理器可以理解的代码,以便它可以执行它。 该语言的实现在语法方面没有区别,但在结构的语义方面可能有所不同。例如,参见众所周知的表达式i++ + ++i。 每个解释器都理解相同的 Python 代码,但将其翻译成机器代码的方式略有不同。
语法没有区别——每个解释器都必须支持Python 语法才能被称为一个。口译员的区别是
代码执行速度,
模块可用性:例如,并非所有在 CPython 中实现的标准库模块在其他实现中都可用,或者具有不同的实现。用 C 语言实现部分功能的模块(“C 扩展”)通常不适用于除 CPython 之外的任何其他解释器(例如,除了 PyPy 之外没有第三方实现
numpy/scipy任何地方,即使在那里也几乎添加了昨天和测试版,EMNIP),与其他语言的桥梁。例如,Jython 可以直接导入 Java 类——这样
ImportError的代码会被其他解释器抛出:同样,IronPython 知道如何使用 CLR 和 .NET:
语言是由句法和语法的描述定义的,通常是抽象的。
语言的实现允许将语言中的代码翻译成处理器可以理解的代码,以便它可以执行它。
该语言的实现在语法方面没有区别,但在结构的语义方面可能有所不同。例如,参见众所周知的表达式
i++ + ++i。每个解释器都理解相同的 Python 代码,但将其翻译成机器代码的方式略有不同。