Python有大量强大又贴心的特性,如果要列个最受欢迎排行榜,那么装饰器绝对会在其中。
刚接触装饰器,会觉得代码不多却难以理解。其实装饰器的语法本身挺简单的,复杂是因为同时混杂了其它的概念。下面我们一起抛去无关概念,简单地理解下Python的装饰器。
Python有大量强大又贴心的特性,如果要列个最受欢迎排行榜,那么装饰器绝对会在其中。
刚接触装饰器,会觉得代码不多却难以理解。其实装饰器的语法本身挺简单的,复杂是因为同时混杂了其它的概念。下面我们一起抛去无关概念,简单地理解下Python的装饰器。
如果说优雅也有缺点的话,那就是你需要艰巨的工作才能得到它,需要良好的教育才能欣赏它。
—— Edsger Wybe Dijkstra
如果读源码的方式是打开源码包,一个个文件,一行行开始读。这种阅读源码方式太枯燥了。另一种方式,对Python的设计有了基本的了解后,找感兴趣的部分去阅读。兴致高,目的性强,内容少,阅读的过程会轻松有趣得多。
对Python设计基本了解包括对总体架构设计,对象系统实现原理,字节码的生成和解释过程有大致的了解。哪天闲得不行,可以写写这方面的文章。
感兴趣的部分源码怎么找?这个就是此文的主题了——如何找到特定逻辑的源码。
作为pythonista,不禁感慨Python的易用与强大。时不时会想,这个好用的语法是怎么实现的,那个神奇库是怎么回事。后来开始翻Python源码,读感兴趣的部分的实现时,像是找到了个四次元口袋。这里有奇思妙想的算法实现,也有精妙绝伦的性能优化,还有天马行空的语法原理。源码的风格也和Python所倡导的一样,简洁优雅,阅读的时候心情十分愉悦。
记下源码里有趣的地方,是件有意思的事。但按这个博客一直以来自娱自乐的尿性,注定了这个系列是只会把坑越挖越大。这里不要脸地承认了,这就是在挖坑。
在做邮件发送服务的时候遇到了种种问题,发现邮件发送有很多技术之外的限制。这里把这些时间查资料和实践出来的一些经验总结在这里。
日志实在是太有用了,它记录了程序运行时各种信息。通过日志可以分析用户行为,记录运行轨迹,查找程序问题。可惜磁盘的空间是有限的,就像飞机里的黑匣子,记录的信息再重要也只能记录最后一段时间发生的事。为了节省空间和整理方便,日志文件经常需要按时间或大小等维度分成多份,删除时间久远的日志文件。这就是通常说的日志滚动(log rotation)。
最近整理nginx日志,用了一个类Unix系统上的古老工具——logrotate,发现意外的好用。想了解这个工具的用法推荐看这里。我了解了一下这个工具的运行机制和原理,觉得挺有趣的。
来自dyr热心的投稿,感谢对Quora这个高质量回答的翻译。以下是正文。
翻译这个的目的仅仅是分享一些真正的“老外”的看法给我周围对英语阅读有困难或者偷懒的人,并不代表我完全赞同作者观点(虽然大部分我觉得说的还是有道理,至少是我见过的现象)
感谢John Smith来稿,笔风太有趣了,能当本博的专栏作家吗?
Python里的对象、类型和元类的关系很微妙也很有意思。
1989年圣诞节期间,上帝很无聊,于是创造了一个世界。