之前和几个 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功能提供了强大支持。接下来,我们将分步解析这一主题,涵盖背景描述、技术原理、架构解析、源码分析、性能优化和案例分析等方面。 --- ## 背
原创 5月前
65阅读
  接下来一段时间,让小庄同学和大家一起由浅入深学习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
一、常见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 中可以直接输入和 目录相关
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
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基础
安装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
我一直非常喜欢 Python。当人们提到 Python 时候,经常会说到下面两个优点:写起来方便容易调用 C/C++ 库然而实际上,第一点是以巨慢执行速度为代价,而第二点也需要库本身按照 Python 规范使用 Python API、导出相应符号。在天壤实习时候,跟 Cython 打了不少交道,觉得这个工具虽然 Bug 多多,写时候也有些用户体验不好地方,但已
前言这是一篇为了更好地说明为什么我们在Python程序开发过程中,为什么要使用Cython作为Python超集原因,因为Python是一种很慢语言,你得理解Python为什么会慢!?因为CPython从诞生到现在它有一个巨大"肿瘤",GIL存在多半原因是为了维持每个PyObject对象内部正确引用计数,而抑制了多线程执行效率。到目前为止CPython事实上仍然是以单线程
背景Python作为最方便编程语言和丰富配置而被大家推崇。 但是当我们模型较复杂,运算量较大时候,python短板就会出现,执行速度并不那么理想,加上GIL限制,让Python开发人员大为担忧,如何摆脱Python这个短板而又不摒弃使用Python快感呢?答案就是使用Cython。使用Cython,你可以避开Python许多原生限制,或者完全超越Python,而无需放弃Pytho
转载 2023-10-31 17:52:52
401阅读
模块以及C API在Python中生成它们。在深入研究ASTC实现之前,理解一个简单Python代码AST是很有用。为此,这里有一个名为instaviz简单应用程序。可以在Web UI中显示AST和字节码指令(稍后我们将介绍)。小插曲这里我需要说下,因为我按照原文例子去照着做,发现根本就运行不起来,所以我就和大家说我做法。首先,我们不能通过pip方式去安装运行,而是从github上
  • 1
  • 2
  • 3
  • 4
  • 5