摘要: 在读`werkzeug`和`flask`的源码中,经常能遇到类名中有`mixin`这个东西。这个东西的用法让我想到了java中的接口名有`able`的用法。今天我就来看了看这个`mixin`是什么东西。学习了python的都知道,python是支持多继承的,但是支不支持动态继承性质呢?在程序运行过程... 阅读全文
posted @ 2015-08-01 23:43 Eric_Nirvana 阅读(6899) 评论(1) 推荐(1) 编辑
摘要: #I/O事件最近在研究tornado和gevent,里面涉及了非阻塞I/O。在了解非阻塞I/O之前,需要先了解I/O事件我们知道,内核有缓冲区。假设有两个进程A,B,进程B想读进程A写入的东西(即进程A做写操作,B做读操作)。进程A需要先写入到**内核缓冲区**中,然后B从内核缓冲区中读取,如图: ... 阅读全文
posted @ 2015-07-24 11:25 Eric_Nirvana 阅读(4505) 评论(1) 推荐(1) 编辑
摘要: 众所周知,python中的`yield`有这样的用法:```pythondef test(alist): for i in alist: yield i```这样,这个`test`函数就变成了一个生成器,当每次调用的时候,就会自动返回当前值。比如:```pythona = [1,2,3... 阅读全文
posted @ 2015-07-23 22:58 Eric_Nirvana 阅读(417) 评论(0) 推荐(0) 编辑
摘要: 按照说明直接使用`pip install scrapy`会有两个问题:1. fatal error: ‘ffi.h’ file not found2. fatal error: ‘libxml/xmlversion.h’ file not found这两个文件都是存在的,可是却显示不存在。网上查找后... 阅读全文
posted @ 2015-07-21 10:58 Eric_Nirvana 阅读(327) 评论(0) 推荐(0) 编辑
摘要: ##Same Tree ###题目给予两棵二叉树,判断这两棵树是否相等(即各节点的值都一样)###解题思路分别遍历两棵二叉树,并用列表分别存储这两棵树的节点的值,比较这两个列表就可以了```pythonclass Solution: # @param {TreeNode} p # @pa... 阅读全文
posted @ 2015-07-13 12:59 Eric_Nirvana 阅读(305) 评论(0) 推荐(0) 编辑
摘要: ##Longest Common Prefix ###题目给予一个列表,元素为字符串,写一个程序找出最长公共前缀###解题思路先比较两个字符串,如果第一个字符不一样,则返回空值,比较完成后,用这个公共字符串和下一个元素继续比较,以此类推```pythonclass Solution: # @p... 阅读全文
posted @ 2015-07-11 10:30 Eric_Nirvana 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 从题目名字就可以看出这两道题是相似的,219是217的加强版##217:Contains Duplicate###题目给予一个数组,判断是否有重复的元素。如果有就返回True,没有就返回False。以下是我第一次想到的方法###解题思路遍历这个数组,建立一个字典,存储每个不同的数字的出现次数。如果某... 阅读全文
posted @ 2015-07-11 10:28 Eric_Nirvana 阅读(241) 评论(0) 推荐(0) 编辑
摘要: ##Path Sum###题目给予一个二叉树,和一个值su,寻找是否有一个从根节点到叶节点的和为su,有则返回True,没有为False。比如: 5 / \ 4 8 / / \ 11... 阅读全文
posted @ 2015-07-11 10:26 Eric_Nirvana 阅读(162) 评论(0) 推荐(0) 编辑
摘要: raspberry部分使用入门~ 阅读全文
posted @ 2015-07-07 23:04 Eric_Nirvana 阅读(2705) 评论(0) 推荐(0) 编辑
摘要: 在使用gevent框架的时候,我们经常会使用`join`函数,如下:```pythondef test1(id): print(id) gevent.sleep(0) print(id, 'is done!')t = gevent.spawn(test1, 't')t1 = gev... 阅读全文
posted @ 2015-07-04 18:28 Eric_Nirvana 阅读(1581) 评论(0) 推荐(0) 编辑