zoukankan      html  css  js  c++  java
  • !! python 之半年总结

    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

            标准安装使用;

  • 相关阅读:
    Webpack 2 视频教程 004
    Webpack 2 视频教程 003
    python dic字典排序
    python练习题7.1词频统计
    python文件读写的基础使用(计算总评成绩)
    python常用内置函数使用
    python练习题5.7列表去重(修正)
    python练习题5.2图的字典表示
    python练习题4.15换硬币(修正)
    python练习题4.7统计学生平均成绩与及格人数
  • 原文地址:https://www.cnblogs.com/carl2380/p/3288793.html
Copyright © 2011-2022 走看看