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 · 339 阅读 · 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 · 505 阅读 · 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 · 208 阅读 · 0 评论 -
第三章内建对象(2):浮点对象----面试题讲解
1原创 2020-08-11 08:18:21 · 184 阅读 · 0 评论 -
第三章内建对象(1):小试牛刀,解剖浮点对象 float
1原创 2020-08-10 22:03:39 · 206 阅读 · 0 评论 -
第二章对象模型(3):从创建到销毁,对象的生命周期
1. 对象的创建首先我们需要观察思考:Python 内部是如何从无到有创建一个浮点对象的Python 又是怎么知道该如何将它打印到屏幕上的呢?>>> pi = 3.14>>> print(pi)3.14下面以 floatl类型为例子,对应C实体是 PyFloat_Type首先来介绍C APIPython 是用 C 写成的,对外提供了 C API ,让用户可以从 C 环境中与其交互。 Python 内部也大量使用这些 API ,为了更好研原创 2020-08-10 09:43:13 · 521 阅读 · 0 评论 -
第二章对象模型(2):揭开对象的神秘面纱
前言:上一节中提到了很多的基本概念,是在python层面进行 描述的,总体概念。现在我们就具体了解下python源码,基于C语言概念复习复习一下和要清楚的前面讲的基本概念:面向对象理论中**“ 类** ”和**“ 对象 ”这两个重要概念,在 Python 内部均以对象**的形式存在。 “类”是一种对象,称为 类型对象 ;“类”实例化生成的“对象”也是对象,称为 实例对象。根据上文描述的,根据对象的不同特点还可以进行分类:可变对象: 对象创建后可以修改不可变对象: 对象创建后不能修改定长对象:原创 2020-08-09 21:29:12 · 289 阅读 · 4 评论 -
第二章对象模型(1)
对象模型的概述首先我们要始终铭记一句话:python是一门面向对象的语言! 并且面向的彻底,可以称为 一切皆对象。这句话说起来简单,如要真正的让你论述其正确性,这就需要很深的功底去理解。列举常见的对象1. 例如我们常讲的类 ,它就是 对象。类的细致描述就是类型,再细致解释说就是类型对象,比如:a = 3 # a 是 int类型b = 'hello' # b 是字符串类型接着 我们通过class 关键字定义的类,也称为自定义类型对象通过类(类型对象)实例化得到的实例化对象>原创 2020-08-09 18:15:42 · 1974 阅读 · 0 评论