
python源码深度剖析一书记录
文章平均质量分 92
我是py呀
py_学习,发布一些我在学习中遇到的问题和经验总结,大家一起学习呀~
展开
-
Python中 a, b = b, a 的具体字节码实现? 以及会出现的问题!
首先引入问题: 力扣448题: 这是我的一种解法: class Solution: def findDisappearedNumbers(self, nums): rst = list() # 循环遍历每一个数组元素 for i in range(len(nums)): # 判断该元素位置上的值,是否需要交换, 注意 循环条件 while nums[i] != i + 1 and nums[i] !原创 2021-06-01 23:17:26 · 395 阅读 · 3 评论 -
Python字典hash表的模拟实现
本文学习自:《Python 源码深度剖析》 感谢作者的传授 若还不清楚字典的知识, 详细内容和知识点可点击了解 功能 主类(字典):PyDictObject (1) add_entry(self, key, value) : 添加元素 (2)del_entry(self, key) : 删除元素 (3) hash_list : (属性),可以遍历底层hash数组 (4) entry_list: (属性),遍历底层键值对数组 (5) 可通过简单的 for循环迭代,很方便 pd = PyDictOb原创 2021-03-30 12:26:18 · 558 阅读 · 2 评论 -
小整数静态对象池相关问题
上问题 整数对象是 不可变对象 ,整数运算结果是以 新对象 返回的,但是: >>> a = 1 + 0 >>> b = 1 * 1 >>> id(a), id(b) (4408209536, 4408209536) >>> c = 1000 + 0 >>> d = 1000 * 1 >>> id(c), id(d) (4410298224, 4410298160) python 小整数池里 默原创 2020-08-29 10:08:50 · 235 阅读 · 0 评论 -
第三章内建对象(2):浮点对象----面试题讲解
1原创 2020-08-11 08:18:21 · 208 阅读 · 0 评论 -
第三章内建对象(1):小试牛刀,解剖浮点对象 float
1原创 2020-08-10 22:03:39 · 246 阅读 · 0 评论 -
第二章对象模型(3):从创建到销毁,对象的生命周期
1. 对象的创建 首先我们需要观察思考: Python 内部是如何从无到有创建一个浮点对象的 Python 又是怎么知道该如何将它打印到屏幕上的呢? >>> pi = 3.14 >>> print(pi) 3.14 下面以 floatl类型为例子,对应C实体是 PyFloat_Type 首先来介绍C API Python 是用 C 写成的,对外提供了 C API ,让用户可以从 C 环境中与其交互。 Python 内部也大量使用这些 API ,为了更好研原创 2020-08-10 09:43:13 · 567 阅读 · 0 评论 -
第二章对象模型(2):揭开对象的神秘面纱
前言:上一节中提到了很多的基本概念,是在python层面进行 描述的,总体概念。现在我们就具体了解下 python源码,基于C语言 概念复习 复习一下和要清楚的前面讲的基本概念: 面向对象理论中**“ 类** ”和**“ 对象 ”这两个重要概念,在 Python 内部均以对象**的形式存在。 “类”是一种对象,称为 类型对象 ;“类”实例化生成的“对象”也是对象,称为 实例对象。 根据上文描述的,根据对象的不同特点还可以进行分类: 可变对象: 对象创建后可以修改 不可变对象: 对象创建后不能修改 定长对象:原创 2020-08-09 21:29:12 · 340 阅读 · 4 评论 -
第二章对象模型(1)
对象模型的概述 首先我们要始终铭记一句话:python是一门面向对象的语言! 并且面向的彻底,可以称为 一切皆对象。 这句话说起来简单,如要真正的让你论述其正确性,这就需要很深的功底去理解。 列举常见的对象 1. 例如我们常讲的类 ,它就是 对象。类的细致描述就是类型,再细致解释说就是类型对象,比如:a = 3 # a 是 int类型 b = 'hello' # b 是字符串类型 接着 我们通过class 关键字定义的类,也称为自定义类型对象 通过类(类型对象)实例化得到的实例化对象 >原创 2020-08-09 18:15:42 · 2096 阅读 · 0 评论