如何规范的编写python代码

作者&投稿:征姬 (若有异议请与网页底部的电邮联系)
如何落实 Python 代码风格~

编码规范选择
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简单易学、免费开源、高层语言、可移植性超强、可扩展性、面向对象、可嵌入型、丰富的库、规范的代码等。Python除了极少的涉及不到的开发之外,其他基本上可以说全能:系统运维、图形处理、数学处理、文本处理、数据库编程、网络编程、web编程、多媒体应用、pymo引擎、爬虫编写、机器学习、人工智能等等。Python的应用特别广,中国现在的人才缺口超过100万。
如果你想要专业的学习Python开发,更多需要的是付出时间和精力,一般在2w左右。应该根据自己的实际需求去实地看一下,先好好试听之后,再选择适合自己的。只要努力学到真东西,前途自然不会差。

PEP8 Python 编码规范
一 代码编排
1 缩进。4个空格的缩进(编辑器都可以完成此功能),不使用Tap,更不能混合使用Tap和空格。
2 每行最大长度79,换行可以使用反斜杠,最好使用圆括号。换行点要在操作符的后边敲回车。
3 类和top-level函数定义之间空两行;类中的方法定义之间空一行;函数内逻辑无关段落之间空一行;其他地方尽量不要再空行。
二 文档编排
1 模块内容的顺序:模块说明和docstring—import—globals&constants—其他定义。其中import部分,又按标准、三方和自己编写顺序依次排放,之间空一行。
2 不要在一句import中多个库,比如import os, sys不推荐。
3 如果采用from XX import XX引用库,可以省略‘module.’,都是可能出现命名冲突,这时就要采用import XX。
三 空格的使用
总体原则,避免不必要的空格。
1 各种右括号前不要加空格。
2 逗号、冒号、分号前不要加空格。
3 函数的左括号前不要加空格。如Func(1)。
4 序列的左括号前不要加空格。如list[2]。
5 操作符左右各加一个空格,不要为了对齐增加空格。
6 函数默认参数使用的赋值符左右省略空格。
7 不要将多句语句写在同一行,尽管使用‘;’允许。
8 if/for/while语句中,即使执行语句只有一句,也必须另起一行。

四 注释
总体原则,错误的注释不如没有注释。所以当一段代码发生变化时,第一件事就是要修改注释!
注释必须使用英文,最好是完整的句子,首字母大写,句后要有结束符,结束符后跟两个空格,开始下一句。如果是短语,可以省略结束符。
1 块注释,在一段代码前增加的注释。在‘#’后加一空格。段落之间以只有‘#’的行间隔。比如:
# Description : Module config.
#
# Input : None
#
# Output : None

2 行注释,在一句代码后加注释。比如:x = x + 1 # Increment x
但是这种方式尽量少使用。
3 避免无谓的注释。
五 文档描述
1 为所有的共有模块、函数、类、方法写docstrings;非共有的没有必要,但是可以写注释(在def的下一行)。
2 如果docstring要换行,参考如下例子,详见PEP 257
"""Return a foobang

Optional plotz says to frobnicate the bizbaz first.

"""

六 命名规范
总体原则,新编代码必须按下面命名风格进行,现有库的编码尽量保持风格。
1 尽量单独使用小写字母‘l’,大写字母‘O’等容易混淆的字母。
2 模块命名尽量短小,使用全部小写的方式,可以使用下划线。
3 包命名尽量短小,使用全部小写的方式,不可以使用下划线。
4 类的命名使用CapWords的方式,模块内部使用的类采用_CapWords的方式。
5 异常命名使用CapWords+Error后缀的方式。
6 全局变量尽量只在模块内有效,类似C语言中的static。实现方法有两种,一是__all__机制;二是前缀一个下划线。
7 函数命名使用全部小写的方式,可以使用下划线。
8 常量命名使用全部大写的方式,可以使用下划线。
9 类的属性(方法和变量)命名使用全部小写的方式,可以使用下划线。
9 类的属性有3种作用域public、non-public和subclass API,可以理解成C++中的public、private、protected,non-public属性前,前缀一条下划线。
11 类的属性若与关键字名字冲突,后缀一下划线,尽量不要使用缩略等其他方式。
12 为避免与子类属性命名冲突,在类的一些属性前,前缀两条下划线。比如:类Foo中声明__a,访问时,只能通过Foo._Foo__a,避免歧义。如果子类也叫Foo,那就无能为力了。
13 类的方法第一个参数必须是self,而静态方法第一个参数必须是cls。
七 编码建议
1 编码中考虑到其他python实现的效率等问题,比如运算符‘+’在CPython(Python)中效率很高,都是Jython中却非常低,所以应该采用.join()的方式。
2 尽可能使用‘is’‘is not’取代‘==’,比如if x is not None 要优于if x。
3 使用基于类的异常,每个模块或包都有自己的异常类,此异常类继承自Exception。
4 异常中不要使用裸露的except,except后跟具体的exceptions。
5 异常中try的代码尽可能少。
6 使用startswith() and endswith()代替切片进行序列前缀或后缀的检查。
7 使用isinstance()比较对象的类型。
8 判断序列空或不空
9 字符串不要以空格收尾。
10 二进制数据判断使用 if boolvalue的方式。


python文件的后缀名是什么
python文件的后缀名有:“.py”、“.py3”、“.pyc”、“.pyo”、“.pyd”、“.pyi”、“.pyx”、“.pyz”、“.pywz”、“.rpy”、“.pyde”、“.pyp”、“.pyt”。python文件后缀总结:(1).py:以 py 扩展名的文件是 Python 源码文件,由 python.exe 解释,可在控制台下运行。可用...

python文件后缀是什么
13. .pyde:这是处理使用的Python脚本,通常与开发环境或特定工具相关。14. .pyp:这些文件是Py4D Python插件,用于与Py4D集成。15. .pyt:这些文件是Python声明文件,用于特定目的,如与IDE或构建工具通信。以上是各种Python文件后缀的解释,每种后缀都代表Python编程中不同的用途和阶段。

pytthon for item in list 和 for item in range(len(list))区别是啥...
for item in list 是一种简单的循环结构,其中 item 会依次遍历 list 中的每一个元素。这种方式更加直观,易于理解和编写。而 for item in range(len(list)) 则是一种常见的遍历列表的方式,其中 range(len(list)) 会生成一个从 0 到 len(list) - 1 的整数序列,然后 item 会依次遍历这个...

python代码转化为sas代码
156阅读·0评论·0点赞2021年4月27日sas和python的区别 知乎_银行业为什么喜欢用 sas 而不是 python?1559阅读·0评论·0点赞2020年12月9日python和sas代码编写_如何从SAS到python编写if语句329阅读·0评论·0点赞2021年1月29日saspython知乎_pyt 已赞过 已踩过< 你对这个回答的评价是? 评论 收起 ...

python文件后缀是什么
11).py [cod]:.gitignore中的通配符表示该文件可能是.pyc,.pyo或.pyd。(12).rpy:包含应用程序或框架特定功能的RPython脚本或Python脚本。(13).pyde:处理使用的Python脚本。(14).pyp:Py4D Python插件。(15).pyt:Python声明文件。众多python培训视频,尽在python学习网,欢迎在线学习!

人工智能难学吗?需要学习什么?
数学能力:高等数学、线性代数、概率论等,必须得掌握最基础的东西,比如微积分、矩阵运算、概率公式等。算法的基础就是数学。编程能力:掌握一门语言(建议pytjon),能独立编写代码、调试程序。计算机思维:熟悉数据结构,了解数据库、操作系统等。算法:理解常见的算法,比如动态规划、贪心。机器学习:掌握...

人工智能需要学习哪些课程?
学习内容包括数学基础、算法积累以及编程语言。数学要学好高数、线性代数、概率论、离散数学等等内容,算法积累需要学会人工神经网络、遗传算法等等,还需要学习一门编程语言,通过编程语言实现算法,还可以学习一下电算类的硬件基础内容。2、人工智能专业应用领域 应用领域是很广泛的,主要有图像识别、博弈论、...

Python渗透测试工具都有哪些
Pytbull: 灵活的 IDS\/IPS 测试框架(附带超过300个测试样例)调试和逆向工程 Paimei: 逆向工程框架,包含PyDBG, PIDA , pGRAPH Immunity Debugger: 脚本 GUI 和命令行调试器 mona.py: Immunity Debugger 中的扩展,用于代替 pvefindaddr IDAPython: IDA pro 中的插件,集成 Python 编程语言,允许脚本...

电商怎样群发营 销简讯?
【PYT网路营销】:把你的广告群发到一些权重较高的部落格或商贸网,可以覆盖大量关键词,针对内销和外销都可以的。 【搜寻引擎竞价服务】:这个方式最直接,马上做马上就能看见你的排名。怎样群发 简讯 若手机支援简讯群发功能,可参考以下路径群发信息: 开启资讯-编写资讯-点选收件人后面的人物图示-在...

帮我翻译《Blow Me A Kiss》的歌词。
我要给你爱的指引,你可以做我的PYT (年轻美丽的小宝贝)我指的不是Thriller (惊险小说),不过我可以使你激动不已如果你需要 (哦)我不需要你煮饭或洗衣,我们可以雇个保姆 因为我正在?嘿嘿 (哦)如果那个人就是你,给我一个飞吻让我知道你了解我 你能做的更好?小女孩,你只需要给我一个...

北宁市15359769354: 如何规范的编写python代码 -
郝万蛇胆: PEP8 Python 编码规范 一 代码编排1 缩进.4个空格的缩进(编辑器都可以完成此功能),不使用Tap,更不能混合使用Tap和空格.2 每行最大长度79,换行可以使用反斜杠,最好使用圆括号.换行点要在操作符的后边敲回车.3 类和top-level...

北宁市15359769354: 如何进行Python 代码编写 -
郝万蛇胆: 它消除了副作用(或者至少对一些特殊领域,例如单一体,有一些牵制作用).绝大部分程序错误 -- 和促使程序员求助于调试来解决的问题 -- 之所以会发生,是因为在程序执行过程期间,变量包含了意外的值.函数程序只不过根本就不为变量分...

北宁市15359769354: 怎样用python写代码 -
郝万蛇胆: 可以点击"File"-"New File",在弹出来的窗口中写代码,完成后按F5或点击"Run"-"Run Module"运行.

北宁市15359769354: 如何编写第一个python程序 -
郝万蛇胆: 现在,了解了如何启动和退出Python的交互式环境,我们就可以正式开始编写Python代码了.在写代码之前,请千万不要用“复制”-“粘贴”把代码从页面粘贴到你自己的电脑上.写程序也讲究一个感觉,你需要一个字母一个字母地把代码自...

北宁市15359769354: 如何编写高质量的Python程序 -
郝万蛇胆: 当你想到这个问题的时候,就是好的开始.python因为太容易,往往不注意编码规范,另外还要研究设计方法.保持DRY和KISS原则是良好的方法.质量高低其实与重用的多少有关系.如果程序质量好,重用的多,就是好程序.如果程序只用一...

北宁市15359769354: python代码格式怎么写比较好 -
郝万蛇胆: 建议就是用python的编辑器来进行python代码的编写,这样可以避免由于代码缩进问题给你带来的困扰,一般编辑器都会在保存代码的时候自动的检查出代码的缩进问题,很多 编辑器都会有自动的代码缩进功能

北宁市15359769354: 如何像Python高手一样编程 -
郝万蛇胆: 一、Python之禅(The Zen of Python) The Zen of Python是Python语言的指导原则,遵循这些基本原则,你就可以像个Pythonista一样编程.具体内容你可以在Python命令行输入import this看到: The Zen of Python, by Tim Peters Beautiful is ...

北宁市15359769354: python如何进行编程 -
郝万蛇胆: 直接在上面写代码了,PYTHON是解释性的编程语言直接写直接出结果,当然你也可以写成PY脚本然后执行

北宁市15359769354: 如何用python写一段代码? -
郝万蛇胆: 简单的,可以使用python 的CGI模块,需要你的服务器开启CGI支持.网页内容如下:<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>python cgi</title> </head><body><p style="font-size:24pt...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网