从伪并行的 Python 多线程说起

2018-03-10
阅读 6 分钟
11k
本文首发于本人博客,转载请注明出处 写在前面 作者电脑有 4 个 CPU,因此使用 4 个线程测试是合理的 本文使用的 cpython 版本为 3.6.4 本文使用的 pypy 版本为 5.9.0-beta0,兼容 Python 3.5 语法 本文使用的 jython 版本为 2.7.0,兼容 Python 2.7 语法 若无特殊说明,作语言解时,python 指 Python 语言;作解释器解...

一个 Reentrant Error 引发的对 Python 信号机制的探索和思考

2017-08-17
阅读 7 分钟
10.4k
前几天工作时遇到了一个匪夷所思的问题。经过几次尝试后问题得以解决,但问题产生的原因却仍令人费解。查找 SO 无果,我决定翻看 Python 的源码。断断续续地研究了几天,终于恍然大悟。撰此文以记。

揭秘·变态的平方根倒数算法

2016-08-04
阅读 6 分钟
18.6k
在上世纪 90 年代,出现过一款不可思议的游戏——雷神之锤(Quake series)。除了优秀的情节设定和精美的画面,最让人称道的莫过于它的运行效率——要知道在那个计算机配置低下的时代,一段小动画都是一个奇迹,但 Quake 却能流畅地运行于各种配置的电脑上。

神坑·Python 装饰类无限递归

2016-07-30
阅读 3 分钟
5.4k
以及一个用于修饰该类的装饰器函数 register——用于装饰类的装饰器很常见(如 django.contrib.admin 的 register),通常可极大地减少定义相似类时的工作量:

Python “黑魔法” 之 Encoding & Decoding

2016-07-22
阅读 4 分钟
6.4k
本文为科普文 本文中的例子在 Ubuntu 14.04 / Python 2.7.11 下运行成功,Python 3+ 的接口有些许不同,需要读者自行转换

Python “黑魔法” 之 Generator Coroutines

2016-04-04
阅读 8 分钟
5.8k
学过 Python 的都知道,Python 里有一个很厉害的概念叫做 生成器(Generators)。一个生成器就像是一个微小的线程,可以随处暂停,也可以随时恢复执行,还可以和代码块外部进行数据交换。恰当使用生成器,可以极大地简化代码逻辑。

数学美 之 判断线段相交的最简方法

2016-02-19
阅读 4 分钟
49.5k
这很容易。平面直线,无非就是两种关系:相交 或 平行。因此,只需判断它们是否平行即可。而直线平行,等价于它们的斜率相等,只需分别计算出它们的斜率,即可做出判断。

17 行代码实现的简易 Javascript 字符串模板

2016-02-12
阅读 3 分钟
10.8k
同许多初学 Javascript 的菜鸟一样,起初,我也是采用拼接字符串的形式,将 JSON 数据嵌入 HTML 中。开始时代码量较少,暂时还可以接受。但当页面结构复杂起来后,其弱点开始变得无法忍受起来:

Python “黑魔法” 之 Meta Classes

2016-02-10
阅读 4 分钟
14k
接触过 Django 的同学都应该十分熟悉它的 ORM 系统。对于 python 新手而言,这是一项几乎可以被称作“黑科技”的特性:只要你在models.py中随便定义一个Model的子类,Django 便可以: