如何在 Python 中实现 goto 语句

2019-05-17
阅读 5 分钟
18.5k
Python 默认是没有 goto 语句的,但是有一个第三方库支持在 Python 里面实现类似于goto 的功能:[链接]。 比如在下面这个例子里, {代码...} func() 在执行第一遍循环时,就会从最内层的 for j in range(2) 跳到函数的return 语句前面。 按理说本文到此就该完了,但是这个库有一个限制,如果嵌套的循环层次太深,就无法...

python wheel 包命名规则和 abi 兼容

2016-11-24
阅读 2 分钟
12.7k
wheel 包的命名格式为 {distribution}-{version}(-{build tag})?-{python tag}-{abi tag}-{platform tag}.whl。其中各个 tag 的意义和取值在 PEP425 中有规定:[链接]

用 Python 拓展 GDB(四)

2016-06-22
阅读 3 分钟
5.8k
欢迎来到《用python拓展gdb》的最后一篇。第一篇结尾,我提到了通用语言相对于领域特定语言的一项优势,即在处理数据上更加灵活。其实通用语言还有着另一样优势,领域特定语言只能局限在宿主程序中使用,而通用语言则无此限制。对于通用语言来说,gdb暴露的接口不过是又一个库而已。

用 Python 拓展 GDB(三)

2016-06-18
阅读 3 分钟
6.5k
欢迎来到《用python拓展gdb》的第三篇。上一篇我们谈到了pretty printer,一个需要python支持的特性。这一篇我们谈论另一个需要python支持的特性,convenience function。

用 Python 拓展 GDB(二)

2016-06-16
阅读 4 分钟
8.3k
欢迎来到《用python拓展gdb》的第二篇。在上一篇,我们学习了gdb提供的常用python接口,并用python实现了自定义命令和调试脚本。

用 Python 拓展 GDB(一)

2016-06-14
阅读 5 分钟
26.7k
之前写的《GDB 自动化操作的技术》一文介绍了可在gdb内部使用的DSL(领域特定语言)来自动化gdb的操作。借助该DSL,我们分别实现了一个名为mv的自定义命令,和“对账”用的调试脚本。在末尾,我提到了也可以用python来实现拓展脚本。从本篇开始,我会介绍如何使用python来给gdb编写脚本。由于篇幅所限,该教程会分成四篇,...

关于Python Magic Method的若干脑洞

2015-11-21
阅读 4 分钟
4.7k
有一天闲着无聊的时候,脑子里突然冒出一个Magic Method的有趣用法,可以用__getattr__来实现Python版的method_missing。顺着这个脑洞想下去,我发现Python的Magic Method确实有很多妙用之处。故在此记下几种有趣(也可能有用的)Magic Method技巧,希望可以抛砖引玉,打开诸位读者的脑洞,想出更加奇妙的用法。