- 1、本文档共7页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
PAGE1/NUMPAGES7
Python编码规范
遵循良好的编码风格,可以有效的提高代码的可读性,降低出错几率和维护难度。在团队开发中,使用(尽量)统一的编码风格,还可以降低沟通成本。
网上有很多版本的编码规范,基本上都是遵循PEP8的规范:
PEP0008–StyleGuideforPythonCode
Google的Python风格指南
PythonGuide-CodeStyle
PocooStyleguide
除了在编码时主动遵循规范,还有很多有用的工具:
IntelliJIDEA和PyCharm的格式化代码功能
Google开源的Python文件格式化工具:/google/yapf
pyflakes,pylint等工具及各种编辑器的插件
本文的内容主要摘自互联网上各种版本的规范,因为公司有些小伙伴代码风格不太好,所以整理了一份算是团队的编码规范。
缩进
不要使用tab缩进
使用任何编辑器写Python,请把一个tab展开为4个空格
绝对不要混用tab和空格,否则容易出现?IndentationError
空格
在list,dict,tuple,set,参数列表的?,?后面加一个空格
在dict的?:?后面加一个空格
在注释符号?#?后面加一个空格,但是?#!/usr/bin/python?的?#?后不能有空格
操作符两端加一个空格,如?+,?-,?*,?/,?|,?,?=
接上一条,在参数列表里的?=?两端不需要空格
括号((),?{},?[])内的两端不需要空格
空行
function和class顶上两个空行
class的method之间一个空行
函数内逻辑无关的段落之间空一行,不要过度使用空行
不要把多个语句写在一行,然后用?;?隔开
if/for/while语句中,即使执行语句只有一句,也要另起一行
换行
每一行代码控制在80字符以内
使用?\?或?()?控制换行,举例:
deffoo(first,second,third,fourth,fifth,
sixth,and_some_other_very_long_param):
user=User.objects.filter_by(first=first,second=second,third=third)\
.skip(100).limit(100)\
.all()
text=(Longstringscanbemadeup
ofseveralshorterstrings.)
命名
使用有意义的,英文单词或词组,绝对不要使用汉语拼音
package/module名中不要出现?-
各种类型的命名规范:
Type
Public
Internal
Modules
lower_with_under
_lower_with_under
Packages
lower_with_under
?
Classes
CapWords
_CapWords
Exceptions
CapWords
?
Functions
lower_with_under()
_lower_with_under()
Global/ClassConstants
CAPS_WITH_UNDER
_CAPS_WITH_UNDER
Global/ClassVariables
lower_with_under
_lower_with_under
InstanceVariables
lower_with_under
_lower_with_under?(protected)or?__lower_with_under?(private)
MethodNames
lower_with_under()
_lower_with_under()?(protected)or?__lower_with_under()?(private)
Function/MethodParameters
lower_with_under
?
LocalVariables
lower_with_under
?
import
所有import尽量放在文件开头,在docstring下面,其他变量定义的上面
不要使用?fromfooimort*
import需要分组,每组之间一个空行,每个分组内的顺序尽量采用字典序,分组顺序是:
标准库
第三方库
本项目的package和module
不要使用隐式的相对导入(implicitrelati
文档评论(0)