随笔分类 - Python
Python 语言小品
摘要:
栽在 Python 的默认参数的“坑”中几次之后打算专门弄一篇博客来说一下这个事情。但是最近看到一篇很好地[英文文章](http://effbot.org/zone/default-values.htm)(*Default Parameter Values in Python,Fredrik Lundh | July 17, 2008 | based on a comp.lang.python post*),鞭辟入里。珠玉在前,就不舞文弄墨了。当然,也算是偷个懒,在这里简单翻译一下,希望更多的人能看到。
阅读全文

摘要:
某次面试问候选人:Python 中生成器是什么?答曰:有 yield 关键字的函数。而在我印象中此种函数返回的值是生成器,而函数本身不是
阅读全文

摘要:
使用 Logging 前可以先捋一下我们常见的日志输出需求,俗话说,不管需求的设计就是耍流氓。
1. 能够定位事件的产生位置和生成时间,用于调试和跟踪。
2. 一份日志可以同时送到多个[目标输出](#dstout)。
3. 可以通过不同级别或者更精细条件筛选日志输出。
4. 可以方便的控制第三方模块的日志输出。
5. 实现上面的一切的前提下,配置/设置 尽量简单。
Python 的 Logging 模块通过神奇的模块化设计,树形的方式组织完美的实现了以上五点。
阅读全文

摘要:以前学 js 的时候第一次见到闭包,当时不甚了了,还为了应付面试强行记住了一个模棱两可的“定义”:在函数中嵌套定义函数,并且在外层将内层函数返回,一同返回了外层函数的环境。当时从字面意思以及当时一个经典例子试图去理解闭包,加之"闭包"这个翻译也很不容易让人味出其中的道理,导致对其总感觉懵懵懂懂。最近工作需要,用起 python,又遇到闭包,这次看到了一些新奇有趣的资料,这才算大致把一些字面上的概念(first-class functions,bind,scope等等)贯通在一起,反过来对闭包有了更深的理解。
阅读全文
摘要:某次在用到 Python 的 socketserver 时,看到了 ForkingMixIn 和 ThreadingMixIn。当时就对这种插件式语法糖感觉很神奇。最近自己写代码,也想写一些这种即插即用的插件代码,于是对 python 的 mix-in 机制探究了一番。
简单来说它是利用多继承的特性,通过插拔额外代码片段,对原类进行花样式增强的一种技术。
阅读全文