之前和几个 py 在做一个的 Python 编译器的前端项目 —— XPython/YAPyPy(目前还在施工之中,但是 codegen 都做好了,上次跑了一个 sklearn 的测试脚本也都能跑通了),在做的期间了解了很多和 py、cpy 相关实现方式的知识。感觉 CPython 作为一个大型 C 项目结构和功能还是非常清晰的,所以说打算索性就把 CPython 的代码都看一遍好了。相关的资料中
转载
2023-09-05 14:17:15
134阅读
# CPython的原理
CPython是Python编程语言的标准实现,是用C语言编写的。作为一门广受欢迎的编程语言,Python因其简单易学和强大的功能受到开发者的青睐。然而,了解CPython的内部原理,对深入掌握Python具有重要意义。本文将解析CPython的运行机制,包括解析、编译、执行和内存管理等方面,并通过代码示例进行说明。
## 1. 解析与编译
当我们编写Python代
原创
2024-08-30 05:08:26
51阅读
楔子在前面的章节中,我们看到 Cython 可以将 Python 的性能提升 10 倍、100 倍、甚至 1000 倍,而这些性能的提升只需要我们做一些简单的修改即可。并且我们还了解了 Cython 的类型化 memoryview,通过类型化 memoryview,我们实现了一个比内置的 sum 函数快了 100 多倍的算法。但以上的这些改进都是基于单线程的,这一次我们来学习 Cython 的多线
在这篇博文中,将深入探索“CPython调用SO(共享对象)文件的原理”。CPython是Python最常用的实现方式,而SO文件则是Linux系统下动态链接库的普遍形式。了解CPython如何调用SO文件,不仅对于性能优化至关重要,也为扩展Python功能提供了强大的支持。接下来,我们将分步解析这一主题,涵盖背景描述、技术原理、架构解析、源码分析、性能优化和案例分析等方面。
---
## 背
接下来的一段时间,让小庄同学和大家一起由浅入深的学习Python爬虫开发与实战。学好一门技术是一件 漫长的事情,大家一起耐心的去学习。1.安装python:到python官网去下载python3版本使用,由于python是跨平台语言,在Windows和Linux或Mac上面的安装细节不全一样,希望大家自行上网了解安装流程。给大家点建议:个人感觉使用PyCharm和Jupyter No
转载
2023-07-21 18:56:52
92阅读
Python解释器CPython:官方版本的解释器,用C语言开发。在命令行下运行python就是启动CPython解释器。CPython是使用最广的Python解释器。CPython用>>>作为提示符 IPython:IPython是基于CPython之上的一个交互式解释器,IPython只是在交互方式上有所增强,但是执行Python代码的功能和CPython是完全一样的。IPy
转载
2023-07-10 17:36:48
182阅读
类我对类的理解就是 程序化的包装,让代码变的规范化,流程化。更好使用。定义一个类class CPython:""" 简单的类实例 """n = "demo"
def get_name(self):
return "CPython"上面例子定义了一个类,类里有一个变量 n,和一个函数 get_name这些都是例子,可以没有。class test:pass什么都没有的类。继续讲CPython类。调用a
转载
2023-07-02 20:04:03
90阅读
一、常见的Python种类1、Cpython使用C语言实现,Python的官方版本,CPython实现会将源文件(py文件)转换成字节码文件(pyc文件),然后运行在Python虚拟机上。我们目前学习就用Cpython2、Jyhton使用JAVA语言实现,Jython会将Python代码动态编译成Java字节码,然后在JVM上运行。3、IronPython使用C#语言实现,IronPython将P
转载
2024-06-13 19:26:09
44阅读
IPython :交互式的Python命令行安装: pip install ipython 使用(命令行中启动): ipython
# 与Python解释器的使用方法一致 IPython高级功能: # 1. TAB键自动补全
# 2. ? :内省、命名空间搜索
# 3. ! :执行系统命令
# 4. 丰富的快捷键 执行系统命令: # ipython 中可以直接输入和 目录相关的
转载
2023-09-11 15:50:36
94阅读
Python前世今生python的创始人为吉多·范罗苏姆(Guido van Rossum)。1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。 python的种类Cpython python的官方版,使用C语言实现,使用最为广泛,Cpython实现会将python源文件(.py)转换为python字节码
转载
2023-11-08 22:09:57
216阅读
re模块包含对正则表达式的支持。一、什么是正则表达式正则表达式是可以匹配文本片段的模式。最简单的正则表达是就是普通字符串,可以匹配其自身。你可以用这种匹配行为搜索文本中的模式,或者用计算后的值替换特定模式,或者将文本进行分段。1、通配符点号(.)可以匹配任何字符(除了换行符),但点号只能匹配一个字符,而不是零个或多个;如.ython可以匹配字符串‘python’或‘jython’,或‘+ython
转载
2024-01-17 14:43:08
78阅读
python是一种编程语言。但这种语言有多种实现,而且与其他语言不同,python并没有一个专门的机构负责实现,而是由多个社区来实现。其中使用c语言开发的叫做python,在于别的语言开发的python对比时为避免歧义通常称为CPython。同样的,使用java开发的叫做JPython,使用.net开发的叫做IronPython。而PyPy与CPython的不同在于,别的一些python实现如CP
转载
2023-06-04 21:19:02
99阅读
目录1 Python语言基本特性2 相关位置文件3 演变和实现4 内存构造4.1 combined table 和 split table4.2 indices 和 entries5 哈希碰撞与删除6 表扩展7 indices数组8 缓冲池9 删除操作9.1 为什么标记成 DKIX_DUMMY9.2 entries 中的删除10 结束11 参考资料1 Python语言基本特性 python基础
转载
2024-05-16 08:40:47
54阅读
安装Python安装后,你会得到Python解释器(就是负责运行Python程序的),一个命令行交互环境,还有一个简单的集成开发环境。特别要注意勾上Add Python 3.7 to PATHPython解释器当我们编写Python代码时,我们得到的是一个包含Python代码的以.py为扩展名的文本文件。要运行代码,就需要Python解释器去执行.py文件。CPython当我们从Python官方网
转载
2023-08-04 10:29:12
76阅读
从大学开始,就对python有了兴趣,毕业设计就是用python做的一个新闻爬取和关键字提取的程序。然而,毕业之后由于一直没有从事python相关的开发,所以就一直没有再使用,一直停留在偶尔看一些资料和帮弟弟妹妹调一下python程序。安装与配置 1.安装chocolatey 参考 2.安装python 这里使用的是chocolatey,直接cmd运行choco instal
转载
2023-09-08 18:19:45
106阅读
Python不仅是被严重高估,而是被严重误解。即便对Python已经掌握到一定程度,但对Python仍然存在误解大有人在。而造成这种误解的很大部份原因是国内过度吹嘘Python宣传。通常说的Python其实就是CPython实现。然而Python演变至今是一种符合其语言标准的开放平台。CPython不能代表其他Python实现,笔者的观点必须严格区分不同的Python实现。本篇文章从大部分搞Pyt
转载
2023-12-10 12:00:37
137阅读
我一直非常喜欢 Python。当人们提到 Python 的时候,经常会说到下面两个优点:写起来方便容易调用 C/C++ 的库然而实际上,第一点是以巨慢的执行速度为代价的,而第二点也需要库本身按照 Python 的规范使用 Python API、导出相应的符号。在天壤实习的时候,跟 Cython 打了不少交道,觉得这个工具虽然 Bug 多多,写的时候也有些用户体验不好的地方,但已
前言这是一篇为了更好地说明为什么我们在Python程序开发过程中,为什么要使用Cython作为Python的超集的原因,因为Python是一种很慢的语言,你得理解Python为什么会慢!?因为CPython从诞生到现在它有一个巨大的"肿瘤",GIL的存在多半原因是为了维持每个PyObject对象内部正确的引用计数,而抑制了多线程的执行效率。到目前为止CPython事实上仍然是以单线程
转载
2024-01-08 12:19:18
78阅读
背景Python作为最方便的编程语言和丰富的配置而被大家推崇。 但是当我们的模型较复杂,运算量较大的时候,python的短板就会出现,执行速度并不那么理想,加上GIL的限制,让Python开发人员大为担忧,如何摆脱Python的这个短板而又不摒弃使用Python的快感呢?答案就是使用Cython。使用Cython,你可以避开Python的许多原生限制,或者完全超越Python,而无需放弃Pytho
转载
2023-10-31 17:52:52
401阅读
模块以及C API在Python中生成它们。在深入研究AST的C实现之前,理解一个简单的Python代码的AST是很有用的。为此,这里有一个名为instaviz的简单应用程序。可以在Web UI中显示AST和字节码指令(稍后我们将介绍)。小插曲这里我需要说下,因为我按照原文的例子去照着做,发现根本就运行不起来,所以我就和大家说我的做法。首先,我们不能通过pip的方式去安装运行,而是从github上
转载
2024-01-24 13:51:57
55阅读