• 第2条:遵循PEP8风格指南


    《Python Enhancement Proposal #8》(8号Python增强提案)又叫PEP8,它是针对Python代码格式而编订的风格指南。

    尽管可以在保证语法正确的前提下随意编写Python代码,但是,采用一致的风格来书写可以让代码更加易懂、更加易读。

    采用和其他Python程序员相同的风格来写代码,可以使项目更利于多人协作。

    即便代码只会由你自己阅读,遵循这套风格也依然可以令后续的修改变得容易一些。

    PEP8列出了许多细节,以描述如何撰写清晰的Python代码。它会随着Python语言持续更新。下面列出几条应该绝对遵守的规则:

    1.空白:Python中的空白(whitespace)会影响代码的含义。python程序员使用空白的时候尤其在意,因为它们会影响代码代码的清晰程度。

    (1)使用space(空格)来表示缩进,而不要用tab(制表符)。

      为什么不建议用tab键,因为tab键和space键不能混用,这样格式检测时会直接报语法错误。

    (2)和语法相关的每一层缩进都用4个空格来表示。

    (3)每行的字符数不应超过79

    (4)对于占据多行的长表达式来说,除了首行之外的其余各行都应该在通常的缩进级别之上再加上4个空格。

    (5)文件中的函数与类之间应该用两个空行隔开

    (6)在同一个类中,各方法之间应该用一个空行隔开

    (7)在使用下标来获取列表元素、调用函数或给关键字参数赋值的时候,不要在两旁添加空格。

    (8)为变量赋值的时候,赋值符号的左侧和右侧应该各自写上一个空格,而且只写一个就好。

    2.命名:PEP8提倡采用不同的命名风格来编写Python代码中的各个部分,以便在阅读代码时可以根据这些名称看出它们在Python语言中的角色。

    (1)函数、变量及属性应该用小写字母来拼写,各单词之间以下划线相连,例如,lowercase_underscore。

    (2)受保护的实例属性,应该以单个下划线开头,例如,_leading_underscore。

    (3)私有的实例属性,应该以两个下划线开头,例如,__double_leading_underscore。

    (4)类与异常,应该以每个单词首字母均大写的形式来命名,例如,CapitailzedWord。

    (5)模块级别的常量,应该全部采用大写字母来拼写,各单词之间以下划线相连,例如,ALL_CAPS

    (6)类中的实例方法(instance method),应该把首个参数命名为self,以表示该对象自身。

    (7)类方法(class method)的首个参数,应该命名为cls,以表示该类自身。

    3.表达式和语句:《The Zen of Python》(Python之禅)中说:每件事都应该有直白的做法,而且最好只有一种。PEP8在制定表达式和语句的风格时,就试着体现了这种思想。

    (1)采用内联形式的否定词,而不要把否定词放在整个表达式的前面,例如,应该写if a is not b而不是if not a is b。

    (2)不要通过检测长度的方法(例如if len(somelist) == 0)来判断somelist是否为[]或等空值,

      而是应该采用if not somelist这种写法来判断,它会假定:空值将自动评估为False。

    (3)检测somelist是否为[]或‘hi’等非空值,也应如此,if somelist语句会默认把非空值判断为True。

    (4)不要编写单行的if语句、for循环、while循环及expect复合语句,而是应该把这些语句分成多行来书写,以示清晰。

    (5)import语句应该总是放在文件开头。

    (6)引入模块的时候,总是应该使用绝对名称,而不应该根据当前模块的路径来使用相对名称。

      例如,引入bar包中的foo模块时,应该完整的写出from bar import foo,而不是应该简写为import foo。

    (7)如果一定要以相对名称来编写import语句,那就采用明确的写法:from.import foo。

    (8)文件中的那些import语句应该按顺序划分成三部分,分别表示标准库模块、第三方模块以及自用模块。

      在每一部分中,各import语句应该按模块的字母顺序来排列。

    拓展:Pylint(http://www.pylint.org)是一款流行的Python源码静态分析工具。它可以自动检查受测代码是否符合PEP8风格指南,而且还能找出Python程序里的多种常见错误。

      后面一章会介绍这个软件的使用。

     文章摘抄于Brett Slatkin的《编写高质量Python代码的59个有效方法》,仅作为个人学习使用,如有侵权请告知,将及时删除,如果觉得有益,请购买原版书籍,知识需要传递和支持,谢谢。 
  • 相关阅读:
    Redis 详解 (一) StackExchange.Redis Client
    redis在.net架构中的应用(1)--利用servicestack连接redis
    .NET中使用Redis:http://www.cnblogs.com/yangecnu/p/Introduct-Redis-in-DotNET.html
    SQL Server日期函数总结
    SQL Server 日期和时间函数
    16Aspx源码论坛
    方差和偏差的区别
    写在中秋节的前?秒
    装系统那些事儿-1-电脑的启动流程
    查找重复的数
  • 原文地址:https://www.cnblogs.com/yangmingxianshen/p/7980833.html
Copyright © 2020-2023  润新知