首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python的代码洁癖与格式,还有大神级程序员不知道的秘密

Python语言规范(文章最后送上Python八荣八耻和Pycharm快捷键大全图一张)

Python之父Guido推荐的规范

缩进

习惯了java,c++之类的宽容,一开始学习python的时候,被它摆了道下马威,写个判断,竟然必须要我正确用缩进格式,原来在python里不能用括号来表示语句块,而是靠缩进来表示.天哪刚开始的时候真的是不习惯

那么如何缩进?

首先不要混合使用制表符和空格来缩进,因为这在跨越不同的平台的时候,无法正常工作。缩进就用空格,4个空格为一个缩进层次,Python的缩进应该是一个优点,只是刚开始可能很不习惯,到了以后,当你看别人的Python代码的时候,你就会深切感受到缩进的好处。另外,Python的缩进可以在一定程度上防止大量的代码堆积在一起,客观上促使形成良好的代码风格.

行的最大长度

周围仍然有许多设备被限制在每行80字符,主要是窗口限制在80个字符。因此,请将所有行限制在最大79字符,每行不超过80个字符除了两种情况

长的导入模块语句

注释里的URL

空行

顶层函数和类的定义用两行空行分割,类内方法的定义就用单个空行分割,额外的空行可被用于(保守的)分割相关函数组成的群,在一组相关的单句中间可以省略空行。

当空行用于分割方法的定义时,在‘class’行和第一个方法定义之间也要有一个空行。在函数中使用空行时,请谨慎的用于表示一个逻辑段落。

空格

杜绝一下几点出现空格

紧挨着圆括号,方括号和花括号的

紧挨贴在逗号,分号或冒号前的

紧贴着函数调用的参数列表前开式括号的

紧贴在索引或切片,开始的开式括号前的

在赋值(或其它)运算符周围的用于和其它并排的一个以上的空格

导入

通常应该在单独的行中导入(Imports),比方说:import sys,os;这样就是错误的

这样就是正确的:

import sys

import os

但是这样是可以的:

from types import StringType, ListType

Imports通常被放置在文件的顶部,仅在模块注释和文档字符串之后,在模块的全局变量和常量之前。Imports应该有顺序地成组安放:

标准库的导入(Imports )

相关的主包(major package)的导入(即,所有的email包在随后导入)

特定应用的导入(imports)

注释

当代码修改时,始终优先更新注释!注释应该是完整的句子,如果注释是一个短语或句子,首字母应该大写,除非他是一个以小写字母开头的标识符(永远不要修改标识符的大小写)。注释块通常由一个或多个由完整句子构成的段落组成,每个句子应该以句号结尾。一定要用英语书写时,断词和空格是可用的。非英语国家的Python程序员:请用英语书写你的注释,除非你120%的确信这些代码不会被其他然看懂。

注释块

注释块通常应用于跟随着一些(或者全部)代码并和这些代码有着相同的缩进层次。注释块中每行以#加一个空格开始)。注释块内的段落以仅含单个‘#’的行分割。注释块上下方最好有一空行包围(或上方两行下方一行,对一个新函数定义段的注释)。

行内注释

一个行内注释是和语句在同一行的注释,行内注释应该谨慎适用,行内注释应该至少用两个空格和语句分开,它们应该以#和单个空格开始。

文档字符串

应该一直遵守编写好的文档字符串的约定。为所有公共模块,函数,类和方法编写文档字符串。文档字符串对非公开的方法不是必要的,但你应该有一个描述这个方法做什么的注释。这个注释应该在"def"这行后。一定注意,多行文档字符串结尾的"""应该单独成行,

命名约定

Python库的命名约定有点混乱,所以我们将永远不能使之变得完全一致,不过还是有公认的命名规范的。新的模块和包(包括第三方的框架)必须符合这些标准,但对已有的库存在不同风格的,保持内部的一致性是首选的。

命名风格

有许多不同的命名风格。以下的有助于辨认正在使用的命名风格,独立于它们的作用。

单个小写字母或单个大写字母

全小写或全大写

有下划线的小写或有下划线的大写

有用短的特别前缀将相关的名字聚合在一起的风格。这在Python中不常用,但是出于完整性要提一下,例如,os.stat()函数是返回一个元组。

命名约定

应避免的名字。永远不要用字符‘l’,‘O’,或‘I’作为单字符的变量名。在某些字体中这些字符不能与数字1和0分辨。试着在使用‘l’时用‘L’代替。

模块名

模块应该是不含下划线的,简短的,小写的名字。因为模块名被映射到文件名,有些文件系统大小写不敏感并且截短长名字,模块名被选为相当短是重要的,这在Unix上不是问题,但当代码传到Mac或Windows上就可能是个问题了。当用C或C++编写的扩展模块有一个伴随Python模块提供高层接口时,C/C++模块有下划线前导。Python包应该是不含下划线的,简短的,全小写的名字。

异常名

如果模块对所有情况定义了单个异常,它通常被叫做“error”或“Error”。似乎扩展的模块使用“error”比如:os.error,而Python模块通常用“Error”比如:xdrlib.Error。

函数名

函数名应该为小写,可能用下划线风格单词以增加可读性。

全局变量

避免使用全局变量, 用类变量来代替. 但也有一些例外:

脚本的默认选项.

模块级常量. 例如: PI = 3.14159. 常量应该全大写, 用下划线连接.

有时候用全局变量来缓存值或者作为函数返回值很有用.

如果需要, 全局变量应该仅在模块内部可用, 并通过模块级的公共函数来访问.

总结

保证缩进的一致性

合理使用空行

适当添加注释

建立自己的编程思想

多看大公司的源代码规范

最后送上一个Python的八荣八耻

Pycharm快捷键大全

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180206A1EOZE00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券