如何落实 Python 代码风格

Python07

如何落实 Python 代码风格,第1张

编码规范选择

Python 作为灵活的脚本语言,在格式方面并不存在太多的限制(相对编译语言)。这样会导致一个比较蛋疼的问题:在项目开发过程中,由于个人的习惯和编码风格,导致程序缺少一个统一的标准,每个人的代码表现形式也不同。因此,在实际项目由于新人加入、老人退出过程中会产生比较高的模块维护成本。因此,在实际的项目开发中,选择一个编码标准也是比较重要的。

面对编码风格选择,比较常见的包括 PEP-8 和 Google Python Style Guide。在最后,我选择了 PEP-8作为项目中的实际应用标准,要求程序需要在满足编码要求规范的前提下进行编码。

除了对代码编码更个的要求以外,我们还对 import 等具体的细节进行了标准化。

尽量规范注释

在降低模块维护成本过程中,另外一个比较好的方式是尽量提供良好的代码注释。尽管这个算是一个和语言无关的老生常谈的问题,我只是想在这里提一下另外一个 PEP:PEP-0257,这里介绍了一种约定的 docstring 编写方法,对于编辑器而言,可以通过插件快速实现注释。

不过我考虑到对个人习惯的影响较大,这个 PEP 实际项目开发中并未作为实际开发规范,只是鼓励大家在项目中进行执行。

从规范到执行

从代码开发最初的规范约定是一回事,当回到开发过程中,开发者难免会因为个人的习惯或者疏忽等各种原因导致程序开发过程中程序编码风格不统一问题。因此在实际开发过程中,我们又需要通过工具保证程序在实际过程中能够帮助规范化或者检查格式错误。

借助社区的力量,我们最终选择了工具 flake8、yapf和isort。其中,flake8用于检查我们的代码是否正确的执行了标准;yapf工具用于快速进行PEP-8标准化,减少了人工修改的成本;isort工具则是执行我们之前提到的 import 标准化工作。

yapf是 Google 员工开发的一个 Python 格式化工具,它支持 PEP8 与 Google 编码标准,一些具体的使用方式可以查看项目的主页。在实际的项目落地过程中,你应该会遇到的一个问题是关于flake8与yapf标准不一致导致一个通过另一个无法正常通过的问题。这一个方面,我们选择的方式是统一妥协成flake8的标准。对于yapf不支持的部分,我们建议活用# yapf: disable标记。

还有另一个问题是关于一些 flake8本身的标准(或者说 PEP-8 标准)问题,比如flake8常见问题:E501程序代码长度超过 79 个字符问题,我们实际编码过程中对这一标准做了适当妥协,允许最大单行字符串长度为 200。但是我们仍然建议缩小至 79 个字符内表示完。

从执行到检查

在最后一关,是我们的上线前检查。我们设置了代码质量检查关卡和系统集成测试。

在代码质量检查过程中,我们会对程序的实际代码质量进行评估。我们对代码质量进行打分,对于分值较低的代码不允许提交进入 master分支。代码质量的检查,我们同样的采用了flake8工具作为统一标准。最后个人的代码质量,通过 Webhook 也会直接反馈在具体的项目管理工具中。

Python设计模式主要分为三大类:创建型模式、结构型模式、行为型模式三 大类中又被细分为23种设计模式,以下这几种是最常见的。

单例模式:是一种常用的软件设计模式,该模式的主要目的是确保某一个类只有一个实例存在。当你希望在整个系统中,某个类只能出现一个是实例时,单例对象就能派上用场。单例对象的要点有三个:一是某个类只能有一个实例二是它必须自行创建整个实例,三是它必须自行向整个系统提供这个实例。

工厂模式:提供一个创建对象的接口,不像客户端暴露创建对象的过程,使用一个公共的接口来创建对象,可以分为三种:简单工厂、工厂方法、抽象工厂。一个类的行为或其算法可以在运行时更改,这种类型的设计模式属于行为型模式。

策略模式:是常见的设计模式之一,它是指对一系列的算法定义,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。换句话来讲,就是针对一个问题而定义出一个解决的模板,这个模板就是具体的策略,每个策略都是按照这个模板进行的,这种情况下我们有新的策略时就可以直接按照模板来写,而不会影响之前已经定义好的策略。

门面模式:门面模式也被称作外观模式。定义如下:要求一个子系统的外部与其内部的通信必须通过一个统一的对象进行。门面模式提供一个高层次的接口,使得子系统更易于使用。门面模式注重统一的对象,也就是提供一个访问子系统的接口。门面模式与模板模式有相似的地方,都是对一些需要重复方法的封装。但本质上是不同的,模板模式是对类本身的方法的封装,其被封装的方法也可以单独使用门面模式,是对子系统的封装,其被封装的接口理论上是不会被单独提出来使用的。

Python是一种跨平台的计算机程序设计语言。是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越多被用于独立的、大型项目的开发。

Python的创始人为荷兰人吉多·范罗苏姆(GuidovanRossum)。1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。

之所以选中Python(大蟒蛇的意思)作为该编程语言的名字,是取自英国20世纪70年代首播的电视喜剧《蒙提.派森的飞行马戏团》(MontyPython'sFlyingCircus)。

扩展资料:

python中文就是蟒蛇的意思。在计算机中,它是一种编程语言。Python(英语发音:/ˈpaɪθən/),是一种面向对象、解释型计算机程序设计语言,由GuidovanRossum于1989年底发明,第一个公开发行版发行于1991年。Python语法简洁而清晰,具有丰富和强大的类库。

它常被昵称为胶水语言,它能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。常见的一种应用情形是,使用Python快速生成程序的原型(有时甚至是程序的最终界面),然后对其中有特别要求的部分,用更合适的语言改写。

比如3D游戏中的图形渲染模块,性能要求特别高,就可以用C++重写。1发展历程编辑自从20世纪90年代初Python语言诞生至今,它逐渐被广泛应用于处理系统管理任务和Web编程。Python已经成为最受欢迎的程序设计语言之一。

参考资料:

百度百科-Python