摘要: 楔子 之前分析了那么久的虚拟机,多少会有点无聊,那么本次我们来介绍一个好玩的,看看如何修改 Python 解释器的底层数据结构和运行时。了解虚拟机除了可以让我们写出更好的代码之外,还可以对 Python 进行改造。举个栗子: 是不是很有趣呢?通过 Python 内置的 ctypes 模块即可做到,而 阅读全文
posted @ 2021-10-31 13:50 古明地盆 阅读(101) 评论(0) 推荐(1) 编辑
摘要: 楔子 今天同事在用 pandas 做数据处理的时候,不小心被 nan 坑了一下,他当时被坑的原因类似下面: import numpy as np print(np.nan == np.nan) # False print([np.nan] == [np.nan]) # True 为了严谨,我们再举个 阅读全文
posted @ 2021-08-21 13:41 古明地盆 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 楔子 Python 可以和 C 无缝结合,通过 C 来为 Python 编写扩展可以极大地提升 Python 的效率,但是使用 C 来编程显然不是很方便,于是本人想到了 Go。对比 C 和 Go 会发现两者非常相似,没错,Go 语言具有强烈的 C 语言背景,其设计者以及语言的设计目标都和 C 有着千 阅读全文
posted @ 2021-05-18 17:39 古明地盆 阅读(552) 评论(1) 推荐(0) 编辑
摘要: 楔子 Python 和 C / C++ 混合编程已经屡见不鲜了,那为什么要将这两种语言结合起来呢?或者说,这两种语言混合起来能给为我们带来什么好处呢?首先,Python 和 C / C++ 联合,无非两种情况。 1. C / C++ 为主导的项目中引入 Python; 2. Python 为主导的项 阅读全文
posted @ 2021-02-12 01:56 古明地盆 阅读(900) 评论(6) 推荐(1) 编辑
摘要: 楔子 这次我们来看看 iter 和 next 这两个内置函数的用法,我们知道 iter 是将一个可迭代对象变成一个迭代器,next 是将迭代器里的值一步一步迭代出来。 lst = [1, 2, 3] it = iter(lst) print(it) # <list_iterator object a 阅读全文
posted @ 2020-11-26 00:39 古明地盆 阅读(508) 评论(2) 推荐(0) 编辑
摘要: 楔子 Python 现在如此流行,拥有众多开源、高质量的第三方库是一个重要原因,不过 Python 的简单、灵巧、容易上手也是功不可没的,而其背后的内置函数(类)则起到了很大的作用。举个栗子: numbers = [1, 2, 3, 4, 5] # 将里面每一个元素都加1 print(list(ma 阅读全文
posted @ 2020-11-25 19:40 古明地盆 阅读(388) 评论(0) 推荐(1) 编辑
摘要: 楔子 现在绝大部分的语言都实现了垃圾回收机制,这其中也包括Python,而不同的语言采用的垃圾回收算法也各不相同。那么,常见的垃圾回收算法都有哪些呢? 引用计数法(reference count): 记录对象的被引用次数, 引用计数降为0时回收 标记-清除法(mark-sweep): 从根集合触发, 阅读全文
posted @ 2020-09-19 23:55 古明地盆 阅读(971) 评论(6) 推荐(1) 编辑
摘要: 楔子 内存管理,对于Python这样的动态语言来说是非常重要的一部分,它在很大程度上决定了Python的执行效率,因为Python在运行中会创建和销毁大量的对象,这些都涉及内存的管理,因此精湛的内存管理技术是确保内存使用效率的关键。 此外,我们知道Python还是一门提供了垃圾回收机制(GC, ga 阅读全文
posted @ 2020-09-19 12:58 古明地盆 阅读(859) 评论(4) 推荐(0) 编辑
摘要: 初见Python的_thread模块 下面我们来说一下Python中线程的创建,我们知道在创建多线程的时候会使用threading这个标准库,这个库是以一个py文件存在的形式存在的,不过这个模块依赖于_thread模块,我们来看看它长什么样子。 _thread是真正用来创建线程的模块,这个模块是由C 阅读全文
posted @ 2020-09-12 03:54 古明地盆 阅读(566) 评论(0) 推荐(0) 编辑
摘要: 楔子 这次我们来说一下Python中的多线程,在上篇博客中我们说了Python的线程,我们说Python中的线程是对OS线程进行了一个封装,并提供了一个线程状态(PyThreadState)对象,来记录OS线程的一些状态信息。 那什么是多线程呢?首先线程是操作系统调度cpu工作的最小单元,同理进程则 阅读全文
posted @ 2020-09-11 01:30 古明地盆 阅读(528) 评论(0) 推荐(1) 编辑