http://blog.chinaunix.net/uid-26443921-id-3481357.html

半年前开始系统完整深入的了解学习 python

读书篇:

《python 核心编程2》 -- 系统全面了解python语法,基本对生成表达式,生成器,迭代器有了深入的了解,基本能灵活熟练使用;

《python cookbook》  -- 主要了解python语言等独有的动态特性,开始接触和使用动态编程+元编程;

《python 源码剖析》   -- 比较深入的了解了 python 对象内存布局,内存使用,以及动态功能的底层实现;

《python 参考手册4》 -- 这不是官方语言手册哦!这本书前面几张非常好,对“声明式”编程感触很深,非常喜欢;

btw:其实c++有范式编程,模版编程,等等;python也有各类编程,“声明式”编程和“元编程”令人着迷,特别是元编程威力极大;

语言库篇:

python 语言库非常之丰富,确实有必要了解一些公用的已经纳入到python安装程序的库,包括:

itertools,operator,map,[for...],(for...),aval,exec -- 函数式编程,声明式编程,元编程必备,语言极简表达能力极强悍的工具

collections,heapq -- 高效数据结构必备

cStringIo,cPickle, pickle, struct -- 网络交互,数据固化值利器

queue,threading  -- 多线程库,见过的最简洁最已用的线程库

glob,os -- 本地文件系统查找之类,系统调用之类

distutils -- 库安装管理神奇,扩展库编写之管家

mysql-connector -- 其实我关心的不是用这玩意,而是主要为了学习怎么写扩展

profile,cProfile,timeit -- 性能分析器,研究了下,收获颇丰!

框架篇:

库上面是框架,每类框架都对应某一类实际应用,包括:

django -- 确实很强大,简单搭建一个网站入口如此简单,也正因为简单所以不怎么灵活,前期代价小,后期代价大;

用这玩意简单实现了一个小网站的入口,呃,确实很简单!用作小业务没啥问题,但如果面对大业务要慎重;

gevent -- 这个库比较裸,即这个框架其实很业务关系不大,只是提供了一个功能强大异常灵活的协程库,如果要应用需要

在上面加上自己的业务代码;继续研究中,以后重点关注对象,期望能替代部分压力不大的c++写的辅助性svr;

扩展篇:

因为是做后台开发,而且有可能面对大业务svr,而且必须和其他svr交互,所以必要的扩展是必须的;关注了:

swig -- swig 非常强大,当然那个".i"文件写起来会有点小恶心;但还好,熟练了之后,把c或c++绑定到python都非常简单;

但越来越感觉swig不是做wrapper的最佳选择,最佳选择反而是 cPython

cPython -- 开始对cpython非常不感冒,因为感觉swig工作量最小,绑定的代价自然最小,但对比swig和cpython的绑定接口,

明显发现,swig虽然也达到了绑定的目的,但接口往往生硬,完全不符合python常用语法规则,即不pythonic,更像是包着python

外衣的c++;cpython在包装的效果性上要远胜swig,虽然需要写不少包装代码,但完全能把c和c++无痕的整合到python中去,最终

的效果是完全看不到底层库的踪影,即感觉不到c和c++的存在;-- 以后重点关注对象

setuptools -- 扩展整合利器,语法简单,但要真正写好,其实不简单,参考了 mysql-connector 和 gevent 的 setup.py,学到了不少东西;

实践篇:

xfrwk -- 用gevent写一个好用的易用的高效的内部svr框架及相关辅助工具,需要整合已有协议及相关流程,最后能按setup build install

标准安装使用;

!! python 之半年总结的更多相关文章

  1. Python 学习笔记(基础篇)

    背景:今年开始搞 Data science ,学了 python 小半年,但一直没时间整理整理.这篇文章很基础,就是根据廖雪峰的 python 教程 整理了一下基础知识,再加上自己的一些拓展,方便自己 ...

  2. 分享一下自己写的Python 3的各种PDF文档【花了半年时间那】

    这些文档花了我半年的时间去整理.因为是第一次进行整理,希望帮助后来者少走弯路.毕竟是第一次整理.哪些地方不到位,希望大家和我练习,我们一起把它做好,以下就直接给出下载地址了,都是免积分的下载奥.因此. ...

  3. 我用了半年的时间,把python学到了能出书的程度

    Python难学吗?不难,我边做项目边学,过了半年就通过了出版社编辑的面试,接到了一本Python选题,并成功出版. 有同学会说,你有编程基础外带项目实践机会,所以学得快.这话不假,我之前的基础确实加 ...

  4. 用Go语言做产品半年的一些感觉

    用Go语言做产品刚好半年,有一些感觉跟大家说道说道. 在使用Go之前,我常常想象,无法使用先进的Debug工具会对工作进度造成多么巨大的影响.甚至在Visual Studio的娇惯下认为,不能调试基本 ...

  5. 北漂的生活 - python 面试

    第一次来北京,先谈谈感受吧.都说北京的雾霾非常严重,可能是我来的时间短,暂时我还没有遇到特别恶劣的天气,感觉还是很美好的.和朋友住在顺义,出去一次真的远啊,旁边暂时还没有找到清真的饭馆(本人少数民族) ...

  6. [Python数据分析]新股破板买入,赚钱几率如何?

    这是本人一直比较好奇的问题,网上没搜到,最近在看python数据分析,正好自己动手做一下试试.作者对于python是零基础,需要从头学起. 在写本文时,作者也没有完成这个小分析目标,边学边做吧. == ...

  7. Python +crontab定时备份目录发送邮件

    公司有一台静态页面展示服务器仅供给客户展示我们做的项目,当时买的时候是最低配,也就是磁盘空间为20G的系统盘,考虑到代码量很小所以没有另加磁盘,后来项目多了,就写了个crontab 定时备份目录. 就 ...

  8. Selenium+Python的环境配置

    因为项目的原因,最近较多的使用了UFT来进行自动化测试工作,半年没有使用Selenium了,于是在自己的电脑上重新配置了基于python3.x的selenium环境,配置过程大致如下: 1. Sele ...

  9. 二分查找-python

    约12年年底的时候,接触了python不到半年的样子,入门是直接实现GUI测试case的.今天面试地平线机器人,发现忘得差不多了- -. 当时的问题是这样的 写一个二分查找是实现,我好像不记得二分查找 ...

随机推荐

  1. SQLSERVER连接池内部机制

    前言介绍: 当应用程序运行的时候,会有一个连接池的管理控件运行在应用程序的进程里,统一管理应用程序和SQLSERVER建立的所有连接, 并且维护这些连接一直处于活动状态.当有用户发出一个connect ...

  2. ASP.NET Web Service如何工作(2)

    ASP.NET Web Service如何工作(2) [日期:2003-06-26] 来源:CSDN  作者:sunnyzhao(翻译) [字体:大 中 小] HTTP管道一旦调用了.asmx句柄,便 ...

  3. ASP.NET 5 初识

    ASP.NET 5 是一个跨平台的全新框架,不再依赖IIS.下面介绍一下简单的Hello World 例子. 1. 安装kvm 用管理员权限打开cmd .如下图: 执行如下的脚本: @powershe ...

  4. seaJs 使用

    开始使用seajs的时候折磨了我好一阵.光是各种概念就让新手难理解.现在弄清楚了,上个实践以备忘.目录结构如图. 1.文件 sea.html   main.js  a.js  b.js  c.js 最 ...

  5. mysql innodb 数据打捞(二)innodb 页面打捞编程

    有了页面的结构和特征,需要编程实现数据库页面的打捞工作: 为了方便windows and linux 的通用,计划做成C语言的控制台应用,并且尽量只用ansi c;关于多线程,计划做成多线程的程序,最 ...

  6. javascript基础DOM操作

    DOM 中的三个字母,D(文档)可以理解为整个 Web 加载的网页文档:O(对象)可以理解为类似 window 对象之类的东西,可以调用属性和方法,这里我们说的是 document对象:M(模型)可以 ...

  7. 如何读懂Oracle文档中的语法图(转)

    本文转载自:http://kyle.xlau.org/posts/syntax-diagrams.html Oracle文档中用到了两种表达语法的方法,语法图和BNF. BNF, Backus-Nau ...

  8. IOS中将十进制色值转换成UIColor

    最近因项目需要,在网上找了一些代码,整合了一下,实现的效果就是将10进制的RGB色值转换IOS用的UIColor,方法还有缺陷,有待改进 UIColor *getColorFromString(NSS ...

  9. shell写的计算器

    #!/bin/bashif [ $# -ne 3 ] then echo "Usage: $0 num1 + num2" fi case $2 in +) echo $1$2$3= ...

  10. “0x5003eaed” 指令引用的“0x00000000”内存。该内存不能为“read”

    一.问题描述与原因分析 1.问题描述 使用VC6.0,在工具栏点击“打开文件”或者“添加文件到项目”的图标时,提示如题的错误. 2.原因分析 微软的VC6.0与office2007冲突问题. 二.解决 ...