什么是CPython
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相关推荐
- 面向 CPython GIL 的多线程编程要点
目录 文章目录 目录 Python GIL Python GIL 对线程并发性能的影响 保留 GIL 的历史原因 为了兼顾解释型语言的简单 为了兼顾 C 程序库的安全 Python 的多线程编程要点 ...
- python和c学习-Cpython学习一:入门
我就要选择和visual studio硬刚,这个东西实在是太流氓了.首先介绍一下参考:https://blog.csdn.net/xyisv/article/details/79389626 CPyt ...
- python和c学习-关于本站 - cPython - 给大学生的入门教程
关于cPython 2012年,我做了智普教育 jeapedu.com. 他是国内较早的python培训机构. 同时我注册了域名cpython.org. 最近几年我一直想为python社区做一点贡献, ...
- python简单代码加法-CPython 源码中整数加法的实现
最近突然涌起兴趣去阅读 CPython 源码,网上也看了不少解析的文章,后来网上看到<Python源码剖析>评价不错,可惜现在已经绝版,只能从豆瓣阅读购买了一本电子书观摩 . 我从网上下载 ...
- python和c-python和C的如何实现互相调用?
本文和大家分享的是python和c的互相调用相关知识,一起来看看吧,希望对大家学习python有所帮助. 最近在考虑基于udp做一个用于网游战斗中的数据同步协议,为了前期测试数据,决定先做一个外部的代 ...
- Python, CPython, Pypy, Jython的简单介绍
简单地说,Python是一门编程语言,任何一种编程语言都需要用另一种语言来实现它,比如C语言就是用机器语言来实现的.所以,Python根据实现方式不同分为了CPyhton.Pypy.Jython等. ...
- python源码精要(9)-CPython内部原理快速指南(1)
对于那些有兴趣了解更多关于CPython内部原理的人,这是一个快速指南.它提供了一个摘要的源代码结构,并包含对资源的引用. 对于Python模块,典型的布局是: • Lib/<module> ...
- python源码精要(8)-CPython源代码结构
在CPython源树中有几个顶级目录.知道每一个人应该持有什么会有所帮助: Doc:编写官方文档.这就是https://docs.python.org/所使用的.请参见构建文档. Grammar:语法 ...
- python源码精要(7)-CPython编译
1.安装与设置git编译 2.从GitHub得到CPython源代码分支 git clone https://github.com/<your_username>/cpython cd c ...
最新文章
- LayoutInflater——inflate方法不同参数的区别
- 七个你一定会犯的云安全错误
- startService()和bindService()区别
- C# vs MySql
- iOS WKWebView 设置默认系统字体
- 国产数据库激荡 40 年
- CUDA文件缺失解决方法——以cudart64_110.dll not found为例
- 剑侠世界手游服务器维护公告,剑侠世界手游公告_剑侠世界手游开服公告_更新公告_安趣网...
- 三极管与恒流源电路(TI学习总结)
- 此生未完成 --- 于娟
- Paypal快速支付接口参数的含义
- IE和Firefox浏览器下javascript、CSS兼容性研究
- android 使用ios字体大小,ios和android上的字体大小不同
- php 表格序号,excel自动生成序号、编号
- 《数据结构(c++语言版)》 清华大学邓俊辉
- 计算机四屏故障维修,液晶显示器有哪些常见故障 液晶显示器常见故障及维修方法...
- Android开发 屏蔽Button setClickable和setEnabled
- linux开防火墙网速下降,关于linux网速提速的解决
- 曙光服务器bios开启虚拟化支持,中科曙光虚拟化培训教程汇总:3.1 使用针对ESXi的常见LSI 命令行管理工具 v1.0.pdf...
- ShowWebGL 强大的3D模型查看器