Python的代码风格

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/weixin_36670529/article/details/102803559

一、设置代码格式

1、代码编写风格的重要性

随着你编写的程序越来越长,有必要了解一些代码格式设置约定。请花时间让你的代码尽可能易于阅读;让代码易于阅读有助于你掌握程序是做什么的,也可以帮助他人理解你编写的代码。为确保所有人编写的代码结构都大致一致。Python程序员都遵循一些格式设置约定。学会编写整洁的Python后,就能明白他人编写Python代码的整体结构------只要他们和你遵循相同的指南。

2、设置格式指南

若要提出Python语言修改建议,需要编写Python改进报案(Python Enchancement Proposal,PEP)。PEP8是最古老的PEP之一,它向Python程序员提供了代码格式设置指南。Python格式设置指南的编写者深知,代码被阅读的次数比编写的次数多。代码编写出来后,调试时你需要阅读它;给程序添加新功能时,需要花很长的时间阅读代码;与其他程序员分享代码,这些程序员也将阅读它们。如果一定要在让代码易于编写和易于阅读之间做出选择,Python程序员几乎总是会选择后者。

3、缩进

PEP 8建议每级缩进都使用四个空格,这既可提高可读性,又留下了足够的多级缩进空间。在字处理文档中,大家常常使用制表符而不是空格来缩进。对于字处理文档来说,这样做的效果很好,但混合使用制表符和空格会让Python解释器感到迷惑。每款文本编辑器都提供了一种设置,可将输入的制表符转换为指定数量的空格。你在编写代码时应该使用制表符键,但一定要对编辑器进行设置,使其在文档中插入空格而不是制表符。在程序中混合使用制表符和空格可能导致极难解决的问题。如果你混合使用了制表符和空格,可将文件中所有的制表符转换为空格,大多数编辑器都提供了这样的功能。

4、行长

很多Python程序员都建议每行不超过80字符,最初制定这样的指南时,在大多数计算机中,终端窗口每行只能容纳79字符;当前,计算机屏幕每行可容纳的字符数多得多,为何还要使用79字符的标准行长呢?这里有别的原因。专业程序员通常会在同一个屏幕上打开多个文件,使用标准行长可以让他们在屏幕上并排打开两三个文件时能同时看到各个文件的完整行。PEP 8还建议注释的行长都不超过72字符,因为有些工具为大型项目自动生成文档时,会在每行注释开头添加格式化字符。PEP 8中有关行长的指南并非不可逾越的红线,有些小组将最大行长设置为99字符。在学习期间,你不用过多地考虑代码的行长,但别忘了,协作编写程序时,大家几乎都遵循PEP 8指南。在大多数编辑器中,都可设置一个视觉标志-------通常是一条竖线,让你知道不能越过的界限在上面地方。

5、空行

要将程序的不同部分分开,可使用空行。你应该使用空行来组织程序文件,但也不能滥用。如果你有5行创建列表的代码,还有3行处理该列表的代码,那么用一个空行将这两部分隔开是合适的。然而,你不应使用三四个空行将它们隔开。空行不会影响代码的运行,但会影响代码的可读性。Python解释器根据水平缩进情况来解读代码,但不关心垂直间距。

二、函数的编写风格

编写函数时,需要牢记几个细节,应给函数指定描述性名称,且只在其中使用小写字母和下划线。描述性名称可帮助你和别人明白代码想要做什么。给模块命名时也应遵循上述约定。

每个函数都应包含简要地阐述其功能的注释,该注释应紧跟在函数定义后面,并采用文档字符串格式。文档字符串良好的函数让其他程序员只需阅读该文档字符串中的描述就能够使用它:他们完全可以相信代码如描述的那样运行:只要知道函数的名称、需要的实参以及返回值的类型,就能再自己的程序中使用它。

给形参指定默认值时,等号两边不要有空格:

def function_name(parameter_0, parameter_1='default value')

对于函数调用中的关键字实参,也应遵循这种约定:

function_name(value_0, parameter_1='value')

PEP 8(https://www.python.org/dev/peps/pep-0008)建议代码行的长度不要超过79字符,这样只要编辑器窗口适中,就能看到整行代码。如果形参很多,导致函数定义的长度超过了79字符,可在函数定义中输入左括号后按回车键,并在下一行按两次Tab键,从而将形参列表和只缩进一层的函数体区分出来。

大多数编辑器都会自动对齐后续参数列表行,使其缩进程度与你给第一个参数列表行指定的缩进程度相同:

def function_name(
        parameter_0, parameter_1, parameter_2,     
        parameter_3, parameter_4, parameter_5):
    function body...

如果程序或模块包含多个函数,可使用两个空行将相邻的函数分开,这样将更容易知道前一个函数在什么地方结束,下一个函数从什么地方开始。

所有的import语句都应放在文件开头,唯一例外的情形时,在文件开头使用了注释来描述整个程序。

三、类的编码风格

你必须熟悉有些与类相关的编码风格问题,在你编写的程序较复杂时尤其如此。类名应采用驼峰命名法则;即将类名中的每个单词的首字母都大写,而不使用下划线。实例名和模块名都采用小写格式,并在单词之间加上下划线。对于每个类,都应紧跟在类定义后面包含一个文档字符串。这种文档字符串简要地描述类的功能,并遵循编写函数的文档字符串时采用的格式约定。每个模块也都应包含一个文档字符串,对其中的类可用于做什么进行描述。

可使用空行来组织代码,但不要滥用。在类中,可使用一个空行来分隔方法;而在模块中,可使用两个空行来分隔类。需要同时导入标准库的模块和你编写的模块时,先编写导入表准率模块的import语句,再添加一个空行,然后编写导入你自己编写的模块的import语句。在语句包含多条import语句的程序中,这种做法让人更容易明白程序使用的各个模块都来何方。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券