【Python入门基础】PEP8规范与Python之禅

2020-11-05 10:34发布

PEP8规范

      PEP时Python Enhancement Proposal的缩写,通常翻译为“Python增强提案”。每个PEP都是一份为Python社区提供的指导Python往更好的方向发展的技术文档,其中的第8号增强提案(PEP 8)是针对Python语言编订的代码风格指南。

一.命名规范

      PEP8倡导用不同的命名风格来命名Python不同的标识符,以便在阅读代码时能够通过标识符的名称来确定该标识符在Python中扮演的怎样的角色。

1.变量、函数和属性应该使用小写字母拼写,如果有多个单词就使用下划线进行连接;

2.类中受保护的实例属性,应该以一个下划线开头;

3.类中私有的实例属性,应该以两个下划线开头;

4.类和异常的命名,应该每个单词首字母大写;

5.模块级别的常量,应该采用全大写字母,如果有多个单词下划线进行连接;

6.类的实例方法,应该把第一个参数命名为self以表示对象自身;

7.类的类方法,应该把第一个参数命名为cls以表示该类本身。

二.空格分隔

      使用空格来表示缩进而不要用制表符(Tab)。Python没有像C/C++或Java那样的花括号来构造代码块的语法,Python代码对缩进以及缩进宽度的依赖比其他很多语言都强得多,例如在Python中循环结构分支结构都是用缩进来表示哪些代码属于同一个级别。在不同的编辑器中,Tab的宽度可能是2、4或者8个字符,甚至是其他的值,用Tab表示缩进对Python来说是一场灾难。

1.和语法相关的每一层缩进都用4各空格表示;

2.每行的字符数不要超过79个字符,如果表达式因太长占据很多行,除了首行之外的其他各行都应该在正常的缩进宽度上再加上4个空格;

3.函数和类的定义,函数、类之间都要用两个空行进行分隔;

4.在同一个类中,各个方法之间应该用一个空行进行分隔;

5.二元运算符的左右两侧应该保留一个空格。

Python之禅

(使用import this查看)

Beautiful is better than ugly. (优美比丑陋好)
Explicit is better than implicit.(清晰比晦涩好)
Simple is better than complex.(简单比复杂好)
Complex is better than complicated.(复杂比错综复杂好)
Flat is better than nested.(扁平比嵌套好)
Sparse is better than dense.(稀疏比密集好)
Readability counts.(可读性很重要)
Special cases aren't special enough to break the rules.(特殊情况也不应该违反这些规则)
Although practicality beats purity.(但现实往往并不那么完美)
Errors should never pass silently.(异常不应该被静默处理)
Unless explicitly silenced.(除非你希望如此)
In the face of ambiguity, refuse the temptation to guess.(遇到模棱两可的地方,不要胡乱猜测)
There should be one-- and preferably only one --obvious way to do it.(肯定有一种通常也是唯一一种最佳的解决方案)
Although that way may not be obvious at first unless you're Dutch.(虽然这种方案并不是显而易见的,因为你不是那个荷兰人^这里指的是Python之父Guido^)
Now is better than never.(现在开始做比不做好)
Although never is often better than \*right\* now.(不做比盲目去做好^极限编程中的YAGNI原则^)
If the implementation is hard to explain, it's a bad idea.(如果一个实现方案难于理解,它就不是一个好的方案)
If the implementation is easy to explain, it may be a good idea.(如果一个实现方案易于理解,它很有可能是一个好的方案)
Namespaces are one honking great idea -- let's do more of those!(命名空间非常有用,我们应当多加利用)

作者:ZoomToday

链接:https://blog.csdn.net/qq_36477513/article/details/104631351

来源:CSDN
著作权归作者所有,转载请联系作者获得授权,切勿私自转载。