http://blog.csdn.net/xubcing/article/details/8350287
http://www.centoscn.com/python/2014/0921/3801.html