CPython是特指C语言实现的Python,就是原汁原味的Python。

之所以使用CPython这个词,是因为Python还有一些其它的实现,比如Jython,就是Java版的Python,还有烧脑的PyPy,使用Python再把Python实现了一遍。

如下是官方对CPython的说明:

CPython is Guido van Rossum’s reference version of the Python computing language. It’s most often called simply “Python”; speakers say “CPython” generally to distinguish it explicitly from other implementations.

这个页面对Python各种不同的实现有一个说明:

https://wiki.python.org/moin/PythonImplementations?action=show&redirect=implementation

当我们编写Python代码时,我们得到的是一个包含Python代码的以.py为扩展名的文本文件。要运行代码,就需要Python解释器去执行.py文件。

由于整个Python语言从规范到解释器都是开源的,所以理论上,只要水平够高,任何人都可以编写Python解释器来执行Python代码(当然难度很大)。事实上,确实存在多种Python解释器。

CPython 
当我们从Python官方网站下载并安装好Python 3.5后,我们就直接获得了一个官方版本的解释器:CPython。这个解释器是用C语言开发的,所以叫CPython。在命令行下运行python就是启动CPython解释器。 
CPython是使用最广的Python解释器。教程的所有代码也都在CPython下执行。

IPython 
IPython是基于CPython之上的一个交互式解释器,也就是说,IPython只是在交互方式上有所增强,但是执行Python代码的功能和CPython是完全一样的。好比很多国产浏览器虽然外观不同,但内核其实都是调用了IE。

CPython用>>>作为提示符,而IPython用In [序号]:作为提示符。

PyPy 
PyPy是另一个Python解释器,它的目标是执行速度。PyPy采用JIT技术,对Python代码进行动态编译(注意不是解释),所以可以显著提高Python代码的执行速度。 
绝大部分Python代码都可以在PyPy下运行,但是PyPy和CPython有一些是不同的,这就导致相同的Python代码在两种解释器下执行可能会有不同的结果。如果你的代码要放到PyPy下执行,就需要了解PyPy和CPython的不同点。

Jython 
Jython是运行在Java平台上的Python解释器,可以直接把Python代码编译成Java字节码执行。

IronPython 
IronPython和Jython类似,只不过IronPython是运行在微软.Net平台上的Python解释器,可以直接把Python代码编译成.Net的字节码。

什么是CPython相关推荐

  1. 面向 CPython GIL 的多线程编程要点

    目录 文章目录 目录 Python GIL Python GIL 对线程并发性能的影响 保留 GIL 的历史原因 为了兼顾解释型语言的简单 为了兼顾 C 程序库的安全 Python 的多线程编程要点 ...

  2. python和c学习-Cpython学习一:入门

    我就要选择和visual studio硬刚,这个东西实在是太流氓了.首先介绍一下参考:https://blog.csdn.net/xyisv/article/details/79389626 CPyt ...

  3. python和c学习-关于本站 - cPython - 给大学生的入门教程

    关于cPython 2012年,我做了智普教育 jeapedu.com. 他是国内较早的python培训机构. 同时我注册了域名cpython.org. 最近几年我一直想为python社区做一点贡献, ...

  4. python简单代码加法-CPython 源码中整数加法的实现

    最近突然涌起兴趣去阅读 CPython 源码,网上也看了不少解析的文章,后来网上看到<Python源码剖析>评价不错,可惜现在已经绝版,只能从豆瓣阅读购买了一本电子书观摩 . 我从网上下载 ...

  5. python和c-python和C的如何实现互相调用?

    本文和大家分享的是python和c的互相调用相关知识,一起来看看吧,希望对大家学习python有所帮助. 最近在考虑基于udp做一个用于网游战斗中的数据同步协议,为了前期测试数据,决定先做一个外部的代 ...

  6. Python, CPython, Pypy, Jython的简单介绍

    简单地说,Python是一门编程语言,任何一种编程语言都需要用另一种语言来实现它,比如C语言就是用机器语言来实现的.所以,Python根据实现方式不同分为了CPyhton.Pypy.Jython等. ...

  7. python源码精要(9)-CPython内部原理快速指南(1)

    对于那些有兴趣了解更多关于CPython内部原理的人,这是一个快速指南.它提供了一个摘要的源代码结构,并包含对资源的引用. 对于Python模块,典型的布局是: • Lib/<module> ...

  8. python源码精要(8)-CPython源代码结构

    在CPython源树中有几个顶级目录.知道每一个人应该持有什么会有所帮助: Doc:编写官方文档.这就是https://docs.python.org/所使用的.请参见构建文档. Grammar:语法 ...

  9. python源码精要(7)-CPython编译

    1.安装与设置git编译 2.从GitHub得到CPython源代码分支 git clone https://github.com/<your_username>/cpython cd c ...

最新文章

  1. LayoutInflater——inflate方法不同参数的区别
  2. 七个你一定会犯的云安全错误
  3. startService()和bindService()区别
  4. C# vs MySql
  5. iOS WKWebView 设置默认系统字体
  6. 国产数据库激荡 40 年
  7. CUDA文件缺失解决方法——以cudart64_110.dll not found为例
  8. 剑侠世界手游服务器维护公告,剑侠世界手游公告_剑侠世界手游开服公告_更新公告_安趣网...
  9. 三极管与恒流源电路(TI学习总结)
  10. 此生未完成 --- 于娟
  11. Paypal快速支付接口参数的含义
  12. IE和Firefox浏览器下javascript、CSS兼容性研究
  13. android 使用ios字体大小,ios和android上的字体大小不同
  14. php 表格序号,excel自动生成序号、编号
  15. 《数据结构(c++语言版)》 清华大学邓俊辉
  16. 计算机四屏故障维修,液晶显示器有哪些常见故障 液晶显示器常见故障及维修方法...
  17. Android开发 屏蔽Button setClickable和setEnabled
  18. linux开防火墙网速下降,关于linux网速提速的解决
  19. 曙光服务器bios开启虚拟化支持,中科曙光虚拟化培训教程汇总:3.1 使用针对ESXi的常见LSI 命令行管理工具 v1.0.pdf...
  20. ShowWebGL 强大的3D模型查看器

热门文章

  1. Android 插件化原理学习 —— Hook 机制之动态代理
  2. gcc创建静态库和共享库
  3. Vue集成Iframe页面
  4. 文件上传漏洞及解决办法
  5. 看一个穷人怎样拥有多套房产的?-财富可以这样成长
  6. MongoDB图形化管理工具
  7. weexapp 开发流程(一)开发环境配置
  8. JavaScript导出Excel通用代码。
  9. 《数学建模:基于R》一一2.1 回归分析
  10. [转]asp.net权限认证:HTTP基本认证(http basic)