分类: python2013-01-30 11:52 73人阅读 评论(0) 收藏 举报

作为脚本语言Python上手容易,但要学好Python能写出一手漂亮的、Pythonic的Python代码并非一日之功,本文的目的在于推荐一些优秀的Python相关的文章(至于书大家可以看dip、learning python和官方手册去),让你在成长为一名Python高手的路上少走一点弯路。注:文章都是英文的,学好Python读懂英文资料这是必须的了。

1. PEP8 Style Guide for Python Code

排第一的当属Python的编码规范PEP8,这个就不用我多说吧,无论是初学还是高手PEP8都是必须烂熟于胸的。在遵循里面讲述的规则的同时,大家也要记住两句比较特殊的话,不过这两句话千万别滥用了:)

    Two good reasons to break a particular rule:

    (1) When applying the rule would make the code less readable, even for
someone who is used to reading code that follows the rules. (2) To be consistent with surrounding code that also breaks it (maybe for
historic reasons) -- although this is also an opportunity to clean up
someone else's mess (in true XP style).

如果要写Python的C扩展库,你还必须好好学习下PEP7

2. Code Like a Pythonista: Idiomatic Python

文如其名,本文篇幅较长,但非常非常实用。本文介绍了一系列Python约定俗成的用法和技巧,学习本文能让你写出来的Python代码马上上一个档次,让你成为一个真正的Pythoneer。

3. PEP318 Decorators for Functions and Methods

在Python的世界里decorator是非常常见的,常见的比如auth、cache都会提供decorator,decorator所实现的功能就是修改紧接 decorator之后定义的函数和方法,你可以根据自己的需要给一个已有的函数和方法添油加醋。

4. Python regular expression documentation

掌握正则表达式是编程人员的必备技能,这是re模块的官方文档,用到正则表达式的时候要常来翻翻。Python的正则表达式跟别的语言函数用法有点 不一样,因此也有人抱怨说Python的re模块不好用,文章开头关于正则表达式规则部分可以当正则表达式的入门教材,如果你还不知道正则表达式是个什么 东西的话。个人觉得Python的re模块非常强大的,举个有点意思的例子,比如VERBOSE的正则表达式还支持在正则表达式中间加注释说明正则表达式 的具体含义,因为正则表达式通常都象天书一样比较难懂,因此这个功能显得非常有用。

a = re.compile(r"""\d +  # the integral part
\. # the decimal point
\d * # some fractional digits""", re.X)

5. PEP333 Python Web Server Gateway Interface v1.0

如果你要用Python来做Web相关的开发(对大多说人来说主要就是指Web运用)WSGI是必读的,WSGI是Python web server、application、middleware之间的官方规范标准,现在主流的Python web server和framework都肯定支持WSGI的。只有了解了WSGI你才能更好的理解Python的web framework的工作机制、middleware为啥可以串联起来、web server是怎么跟web application交互的。WSGI有两个为人诟病的地方,一是不支持异步,Tornado是一个异步的Web server,但是若要在上面运行WSGI的framework如Django,则Tornado的异步特性完全用不上;二是WSGI v1.0不支持Python3.x,为了支持Python3.x,有两篇还在Draft状态的PEP文档PEP3333PEP444可供参考。

6. How To Use Linux epoll with Python

更深入一点,如果你要做服务器端的编程的话,此文可以让你深入理解Python的同步、异步socket编程模式。假如你觉得Tornado的源码比较费解的话,读读这篇文章对你会很有大的帮助。

7.另外还有一些比较重要的文档,这里不做详解,有兴趣的同学可以去看看:

fw:学好Python必读的几篇文章的更多相关文章

  1. Python——学好Python必读的几篇文章

    作为脚本语言Python上手容易,但要学好Python能写出一手漂亮的.Pythonic的Python代码并非一日之功,本文的目的在于推荐 一些优秀的Python相关的文章(至于书大家可以看dip.l ...

  2. 人脸识别必读的N篇文章

    一,人脸检测/跟踪 人脸检测/跟踪的目的是在图像/视频中找到各个人脸所在的位置和大小:对于跟踪而言,还需要确定帧间不同人脸间的对应关系. 1, Robust Real-time Object Dete ...

  3. 转发:python 装饰器--这篇文章讲的通俗易懂

    转 http://www.cnblogs.com/wupeiqi/articles/4980620.html 1.必备 #### 第一波 #### def foo():     print 'foo' ...

  4. 你真的了解Python吗?这篇文章可以让你了解90%

    人们为什么使用Python? 之所以选择Python的主要因素有以下几个方面: 软件质量:在很大程度上,Python更注重可读性.一致性和软件质量,从而与脚本语言世界中的其他工具区别开发.此外,Pyt ...

  5. 理解Python中的装饰器//这篇文章将python的装饰器来龙去脉说的很清楚,故转过来存档

    转自:http://www.cnblogs.com/rollenholt/archive/2012/05/02/2479833.html 这篇文章将python的装饰器来龙去脉说的很清楚,故转过来存档 ...

  6. 用 Python 分析咪蒙1013篇文章,她凭什么会火?

    咪蒙 文学硕士,驾驭文字能力极强.并且是一个拥有一千多万粉丝,每篇文章阅读量都   100W+,头条发个软文都能赚 80 万,永远都能抓住粉丝G点的那个女人. 1月份因为某篇文章,在网络上被一大批网友 ...

  7. python中的面向对象学习以及类的封装(这篇文章初学者一定要好好看)

    这篇文章对于初学者可以很有效的理解面对过程.面对对象 一.首先介绍一下面向过程和面向对象的比较: 面向过程 VS 面向对象 编程范式 编程是程序员用特定的语法+数据结构+算法组成的代码来告诉计算机如何 ...

  8. Python正则表达式,看完这篇文章就够了...#华为云·寻找黑马程序员#【华为云技术分享】

    版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/devcloud/article/detai ...

  9. Python RPC 不会?不妨看看这篇文章

    1. 前言 大家好,我是安果! RPC,全程为 Remote Procedure Call,是一种进程间的通信方式,它采用「 服务端 / 客户机 」模式,是一种请求响应模型 其中,服务端负责提供服务程 ...

随机推荐

  1. 访问本机的WEB API 报400错误

    当时用的IP是127.0.0.1 报400错误,换成 localhost 后正常.

  2. 【ntp】centos7下ntp服务器设置

    安装ntp #检查服务是否安装 rpm -q ntp #安装ntp服务器 yum -y install ntp 修改配置文件:/etc/ntp.conf 内容如下: restrict default ...

  3. IntelliJ IDEA安装lombok插件

    Settings→Plugins→Browse repositories 输入lom后选择Install Plugin 按照提示重启IDEA   来自为知笔记(Wiz)

  4. HDU3516 树的构造

    题目大意:平面上有n个点,构成一个单调递减的序列.即对于任意的i<j,有xi<xj,yi>yj.现在要用一棵树连接这n个点.树边为有向边,只能向右或向上.求最小的权值. 分析:本题其 ...

  5. Android中使用am命令实现在命令行启动程序详解

    在Android中,除了从界面上启动程序之外,还可以从命令行启动程序,使用的是命令行工具am. 复制代码代码如下: usage: am [subcommand] [options] start an ...

  6. Tomcat无法启动:org.apache.catalina.LifecycleException: Failed to start component 问题解决

    问题如下:需要使用到数据库mysql,于是将mysql-connector-java-5.1.30-bin.jar的数据库驱动复制到WEE-INF/lib目录下.点击运行,但是服务器无法启动. 控制台 ...

  7. Linux常用命令记录

    产用Linux命令 cat /proc/partitions //查看系统分区情况 fdisk -l /dev/sdb //查看磁盘物理存储 mount /dev/目录 /mnt/目录 //挂载文件 ...

  8. Mongodb集群搭建及spring和java连接配置记录

    一.基本环境: mongdb3.0.5数据库 spring-data-mongodb-1.7.2.jar mongo-java-driver-3.0.2.jar linux-redhat6.3 tom ...

  9. for语句的用法

    #!/bin/bashfor i in 1 2 3 4 5 6do echo $idone 看文件 #!/bin/bashdir=$(ls /etc) for i in $dirdo echo $id ...

  10. RMQ问题ST算法 (还需要进一步完善)

    /* RMQ(Range Minimum/Maximum Query)问题: RMQ问题是求给定区间中的最值问题.当然,最简单的算法是O(n)的,但是对于查询次数很多(设置多大100万次),O(n)的 ...