本系列来自《编写高质量代码 改善python程序的91个建议》的读书笔记整理。

本书主要内容

    1)容易被忽视的重要概念和常识,如代码的布局和编写函数的原则等;
    2)编写python程序管用的方法,如利用assert语句去发现问题,使用enumerate()获取序列迭代的索引和值等;
    3)语法中的关键条款,如有节制地使用from…import语句,异常处理的几点基本原则等;
    4)常见库的使用,如按需选择sort()或者sorted(),使用Queue使多线程更安全等;
    5)python设计模式的使用,如用发布订阅模式实现松耦合,用状态模式美化代码等;
    6)python内部机制,如名字查找机制,描述符机制等;
    7)开发工具的使用,如pip等各种开发工具的使用,各种代码测试用具的使用等;
    8)python代码的性能分析,优化的原则,工具,技巧,以及常见性能问题的解决等。

本章主要内容

        建议1:理解pythonic概念
        建议2:编写pythonic代码
        建议3:理解python与C语言的不同之处
        建议4:在代码中适当添加注释
        建议5:通过适当添加空行使代码布局更为优雅,合理
        建议6:编写函数的4个原则
        建议7:将常量集中到一个文件

建议1:理解pythonic概念

    1)pythonic:充分体现python自身特色的代码风格。
    2)举例:
 # 交换两个变量的值,packaging/unpackaging机制
x = 2
y = 3
x, y = y, x
print x, y
 # 字符串格式化
print 'Hello %(name)s!' % {'name': 'Tom'}
 # 字符串格式化
print 'Hello {name}!'.format(name='Tom')
    3)python的包和模块结构: (1) 包和模块的命名采用小写,单数形式且短小;(2)包通常作为命名空间,如只包含空的__init__.py文件。

建议2:编写pythonic代码

    1)要避免劣化代码:(1)避免只用大小写来区分不同的对象;(2)避免使用容易引起混淆的名称;(3)不要害怕过长的变量名;
    2)pep8检测工具:
 C:\>pip install -U pep8

 C:\Users\Administrator\Desktop\zxt>pep8 --first database.py
database.py:83:1: E302 expected 2 blank lines, found 1 >pep8 --show-source --show-pep8 waijiao.py

建议3:理解python与C语言的不同之处

    1)缩进{}
    2)'"
    3)三元操作符?:
    4)switch...case
 n = raw_input("please input a number:")
if n == "":
print "You typed zero."
elif n == "":
print "You are in top."
elif n == "":
print "N is an even number."
else:
print "Error!"
用跳转可以实现:
 def func():
return {
"": "You typed zero.",
"": "You are in top.",
"": "N is an even number."
}.get(n, "Error!")

建议4:在代码中适当添加注释

    1)使用块或者行注释的时候仅注释复杂的操作,算法,难以理解的技巧或者不够一目了然的代码;
    2)注释和代码隔开一定的距离;
    3)给外部可访问的函数和方法添加文档注释(ddocstring)(""" """);
    4)推荐文件头部包含copyright申明。模块描述等。
 """
Requests HTTP library
~~~~~~~~~~~~~~~~~~~~~
Requests is an HTTP library, written in Python, for human beings. Basic GET
usage:
>>> import requests
>>> r = requests.get('https://www.python.org')
>>> r.status_code
200
>>> 'Python is a programming language' in r.content
True
... or POST:
>>> payload = dict(key1='value1', key2='value2')
>>> r = requests.post('http://httpbin.org/post', data=payload)
>>> print(r.text)
{
...
"form": {
"key2": "value2",
"key1": "value1"
},
...
}
The other HTTP methods are supported - see `requests.api`. Full documentation
is at <http://python-requests.org>.
:copyright: (c) 2015 by Kenneth Reitz.
:license: Apache 2.0, see LICENSE for more details.
"""

建议5:通过适当添加空行使代码布局更为优雅,合理

    1)在一组代码表达完一个完整的思路之后,应该用空白进行间隔;
    2)尽量保持上下文语义的易理解性(如调用函数写在被调用函数之上);
    3)避免过长的代码行,每行最好不要超过80个字符;
    4)不要为了保持水平对齐而使用多余的空格;
    5)空格是使用要能在需要强调的时候警示读者:
        (1)二元运算符的左右两边应该有空格;
        (2)逗号和分号前不要使用空格;
        (3)函数名和左右括号之间,序列索引操作时序列名和[ ]之间不要空格,函数默认参数两侧不需要空格;
        (4)强调前面的操作符的时候使用空格。

建议6:编写函数的4个原则

    1)函数设计尽量短小,嵌套层次不宜过深(最好控制在3层以内);
    2)函数声明应该做到合理,简单,易于使用;
    3)函数参数设计应该考虑向下兼容;
    4)一个函数只做一件事,尽量保证函数语句粒度的一致性。

建议7:将常量集中到一个文件

示例:const.py
 # -*-coding:UTF-8 -*-

 import sys

 class _const(object):

     class ConstError(TypeError):
pass class ConstCaseError(ConstError):
pass def __setattr__(self, name, value):
if self.__dict__.has_key(name):
raise self.ConstError, "Can't change const.{name}".format(name=name)
if not name.isupper():
raise self.ConstCaseError, 'const name "{name}" is not all uppercase'.format(name=name)
self.__dict__[name] = value sys.modules[__name__] = _const()

python编程规范系列--建议01~07的更多相关文章

  1. python编程规范系列--建议08~18

    本系列来自<编写高质量代码 改善python程序的91个建议>的读书笔记整理.  本章主要内容 建议8:利用assert语句来发现问题 建议9:数据交换值时不推荐使用中间交换变量 建议10 ...

  2. Python编程规范(PEP8)

    Python编程规范(PEP8) 代码布局 缩进 对于每一次缩进使用4个空格.使用括号.中括号.大括号进行垂直对齐,或者缩进对齐. 制表符还是空格? 永远不要将制表符与空格混合使用.Python最常用 ...

  3. Python 编程规范-----转载

    Python编程规范及性能优化 Ptyhon编程规范 编码 所有的 Python 脚本文件都应在文件头标上 # -*- coding:utf-8 -*- .设置编辑器,默认保存为 utf-8 格式. ...

  4. Python学习手册之 Python 之禅、Python 编程规范和函数参数

    在上一篇文章中,我们介绍了 Python 的正则表达式使用示例,现在我们介绍 Python 之禅. Python 编程规范和函数参数.查看上一篇文章请点击:https://www.cnblogs.co ...

  5. Python编程规范及性能优化(转载)

    转载地址:http://codeweblog.com/python编程规范及性能优化/

  6. PEP8 Python编程规范

    官方文档: https://www.python.org/dev/peps/pep-0008/ ---------------------------------------------------- ...

  7. Python 编程规范梳理

    缘由 由于项目团队中新加入了几名攻城狮, 大家之前的背景各不相同,写出的代码也是“风格迥异”.正所谓:“无规则不成方圆”,因此需要对编程进行必要的规范. 整体的思路是:依照PEP8 Python 编码 ...

  8. Python 编程规范 —— TODO 注释(结合 PyCharm)

    编程是代码和注释的统一: TODO 自然表示需要做而未做的一些待完成的事项,有助于事后的检索,以及对整体项目做进一步的修改迭代. # TODO(kl@gmail.com): Use a "* ...

  9. PEP 8 python编程规范

    一 代码编排 缩进.4个空格的缩进(编辑器都可以完成此功能),不使用Tap,更不能混合使用Tap和空格. 每行最大长度79,换行可以使用反斜杠,最好使用圆括号.换行点要在操作符的后边敲回车. 类和to ...

随机推荐

  1. Python 排序---sort与sorted学习

    当我们从数据库中获取一写数据后,一般对于列表的排序是经常会遇到的问题,今天总结一下python对于列表list排序的常用方法: 第一种:内建方法sort() 可以直接对列表进行排序 用法: list. ...

  2. 为Spring Cloud Config Server配置远程git仓库

    简介 虽然在开发过程,在本地创建git仓库操作起来非常方便,但是在实际项目应用中,多个项目组需要通过一个中心服务器来共享配置,所以Spring Cloud配置中心支持远程git仓库,以使分散的项目组更 ...

  3. spoj-ANARC05H -dp

    ANARC05H - Chop Ahoy! Revisited! #dynamic-programming Given a non-empty string composed of digits on ...

  4. Hibernate入门_增删改查

    一.Hibernate入门案例剖析:  ①创建实体类Student 并重写toString方法 public class Student { private Integer sid; private ...

  5. Spring入门6事务管理2 基于Annotation方式的声明式事务管理机制

    Spring入门6事务管理2 基于Annotation方式的声明式事务管理机制 201311.27 代码下载 链接: http://pan.baidu.com/s/1kYc6c 密码: 233t 前言 ...

  6. C# 设计模式巩固 - 简单工厂模式

    前言 设计模式的文章很多.鄙人不才文笔也不咋地.写这篇只为巩固下基础知识,万一不小心帮到了您,是我莫大的荣幸!写的不好欢迎码友指正,废话结束开始进入正题. 介绍 - 简单工厂模式 官方定义:(尴尬~貌 ...

  7. UML_03_类图

    一.前言 类图是UML结构图,在类和接口的层次上显示设计系统的结构,显示它们的特性.约束和关系等,是定义其它图的基础. 二.类图 如上图,在类图中表示方法如下: 斜体 :抽象类.抽象方法 下划线 :静 ...

  8. JAVA交换两个变量的值-(不使用第三变量)

    以下方法的根本原理就是: 借助第三个变量 c = a; a = b; b = c; 运算符-不借助第三变量: a = a+b; b = a-b; a = a-b; 为运算符-不借助第三个变量: (此种 ...

  9. Java基础部分全套教程.

    这是我自己早前听课时整理的java基础全套知识,使用于初学者,也可以适用于中级的程序员,我做成了chm文档的类型,你们可以下载 笔记是比较系统全面,可以抵得上市场上90%的学习资料.讨厌那些随便乱写的 ...

  10. Linux下升级安装Python-3.6.2版本

    本文主要介绍在Linux(CentOS)下将Python的版本升级为3.6.2的方法 众所周知,在2020年python官方将不再支持2.7版本的python,所以使用3.x版本的python是必要的 ...