Python 编码规范(Google) (一)
Python 风格规范(Google)
本项目并非 Google 官方项目, 而是由国内程序员凭热情创建和维护。
如果你关注的是 Google 官方英文版, 请移步 Google Style Guide
以下代码中 Yes 表示推荐,No 表示不推荐。
分号
不要在行尾加分号, 也不要用分号将两条命令放在同一行。
行长度
每行不超过80个字符
以下情况除外:
- 长的导入模块语句
- 注释里的URL
不要使用反斜杠连接行。
Python会将 圆括号, 中括号和花括号中的行隐式的连接起来 , 你可以利用这个特点. 如果需要, 你可以在表达式外围增加一对额外的圆括号。
推荐: foo_bar(self, width, height, color='black', design=None, x='foo',emphasis=None, highlight=0)if (width == 0 and height == 0 andcolor == 'red' and emphasis == 'strong'):
如果一个文本字符串在一行放不下, 可以使用圆括号来实现隐式行连接:
x = ('这是一个非常长非常长非常长非常长 ''非常长非常长非常长非常长非常长非常长的字符串')
在注释中,如果必要,将长的URL放在一行上。
Yes: # See details at# http://www.example.com/us/developer/documentation/api/content/v2.0/csv_file_name_extension_full_specification.html
No: # See details at# http://www.example.com/us/developer/documentation/api/content/\# v2.0/csv_file_name_extension_full_specification.html
注意上面例子中的元素缩进; 你可以在本文的 :ref:`缩进 <indentation>`部分找到解释.
括号
宁缺毋滥的使用括号
除非是用于实现行连接, 否则不要在返回语句或条件语句中使用括号. 不过在元组两边使用括号是可以的.
Yes: if foo:bar()while x:x = bar()if x and y:bar()if not x:bar()return foofor (x, y) in dict.items(): ...
No: if (x):bar()if not(x):bar()return (foo)
缩进
用4个空格来缩进代码
绝对不要用tab, 也不要tab和空格混用. 对于行连接的情况, 你应该要么垂直对齐换行的元素(见 :ref:`行长度 <line_length>` 部分的示例), 或者使用4空格的悬挂式缩进(这时第一行不应该有参数):
Yes: # 与起始变量对齐foo = long_function_name(var_one, var_two,var_three, var_four)# 字典中与起始值对齐foo = {long_dictionary_key: value1 +value2,...}# 4 个空格缩进,第一行不需要foo = long_function_name(var_one, var_two, var_three,var_four)# 字典中 4 个空格缩进foo = {long_dictionary_key:long_dictionary_value,...}
No: # 第一行有空格是禁止的foo = long_function_name(var_one, var_two,var_three, var_four)# 2 个空格是禁止的foo = long_function_name(var_one, var_two, var_three,var_four)# 字典中没有处理缩进foo = {long_dictionary_key:long_dictionary_value,...}
空行
顶级定义之间空两行, 方法定义之间空一行
顶级定义之间空两行, 比如函数或者类定义. 方法定义, 类定义与第一个方法之间, 都应该空一行. 函数或方法中, 某些地方要是你觉得合适, 就空一行.
空格
按照标准的排版规范来使用标点两边的空格
括号内不要有空格.
按照标准的排版规范来使用标点两边的空格
Yes: spam(ham[1], {eggs: 2}, [])
No: spam( ham[ 1 ], { eggs: 2 }, [ ] )
不要在逗号, 分号, 冒号前面加空格, 但应该在它们后面加(除了在行尾).
Yes: if x == 4:print x, yx, y = y, x
No: if x == 4 :print x , yx , y = y , x
参数列表, 索引或切片的左括号前不应加空格.
Yes: spam(1)
no: spam (1)
Yes: dict['key'] = list[index]
No: dict ['key'] = list [index]
在二元操作符两边都加上一个空格, 比如赋值(=), 比较(==, <, >, !=, <>, <=, >=, in, not in, is, is not), 布尔(and, or, not). 至于算术操作符两边的空格该如何使用, 需要你自己好好判断. 不过两侧务必要保持一致.
Yes: x == 1
No: x<1
当'='用于指示关键字参数或默认参数值时, 不要在其两侧使用空格.
Yes: def complex(real, imag=0.0): return magic(r=real, i=imag)
No: def complex(real, imag = 0.0): return magic(r = real, i = imag)
不要用空格来垂直对齐多行间的标记, 因为这会成为维护的负担(适用于:, #, =等):
Yes:foo = 1000 # 注释long_name = 2 # 注释不需要对齐dictionary = {"foo": 1,"long_name": 2,}
No:foo = 1000 # 注释long_name = 2 # 注释不需要对齐dictionary = {"foo" : 1,"long_name": 2,}
Python 编码规范(Google) (一)相关推荐
- Python 编码规范(Google)
Python 风格规范(Google) 本项目并非 Google 官方项目, 而是由国内程序员凭热情创建和维护. 如果你关注的是 Google 官方英文版, 请移步 Google Style Guid ...
- 超详细Python 编码规范(Google)介绍
前言 Python 风格规范(Google) 本项目并非 Google 官方项目, 而是由国内程序员凭热情创建和维护. 如果你关注的是 Google 官方英文版, 请移步 Google Style G ...
- pep8 python 编码规范_编码规范的重要性
很多去 Google 参观的人,在用完洗手间后都有这样的疑惑,马桶前面的门上怎么会贴着 Python 编码规范?要知道,Google 对编码规范的要求极其严格,这也能从侧面说明编码规范的重要性. 对于 ...
- 《Python从小白到大牛》第5章 Python编码规范
<Python从小白到大牛>已经上市! 俗话说:"没有规矩不成方圆".编程工作往往都是一个团队协同进行,因而一致的编码规范非常有必要,这样写成的代码便于团队中的其他人员 ...
- python编码规范手册-Python官方竟然给出了一种编码规范PEP 8
写在之前 每个人都有自己的代码风格,随着写的行数增加,自己对于代码的审美也会变的不一样,这就像是一个逐渐蜕变的过程,每过一段时间回头再去看看自己之前写的代码就会生出一种「这么丑的玩意儿竟然是我写的」这 ...
- python编码规范手册-PEP8 Python 编码规范整理
决定开始Python之路了,利用业余时间,争取更深入学习Python.编程语言不是艺术,而是工作或者说是工具,所以整理并遵循一套编码规范是十分必要的.所以今天下午我根据PEP 8整理了一份,以后都照此 ...
- PEP8 Python 编码规范整理
决定开始Python之路了,利用业余时间,争取更深入学习Python.编程语言不是艺术,而是工作或者说是工具,所以整理并遵循一套编码规范是十分必要的.所以今天下午我根据PEP 8整理了一份,以后都照此 ...
- Python 编码规范 TODO注释
如: # TODO(Dontla): 提取filenames中数字# TODO(Dontla): 重新构建并写入文件 快捷键:alt+6 ,快速找出所有待办TODO 参考文章1:Python编码规范- ...
- python经典书籍推荐:python编码规范
目录 INF-qa Python 编码规范............................................................................... ...
最新文章
- JUC.Condition学习笔记[附详细源码解析]
- A little something to get you started
- Java并发编程--理解ThreadLocal
- 理一理字节对齐的那些事
- java多因子认证,Milvus 实战|生物多因子认证系列 (二):人脸识别
- Python----倚楼听风雨
- Linux中对两文件处理
- hadoop误删除文件
- shipyard中文版发布
- DockLayout布局
- 强烈推荐12套开源微信小程序免费源码
- 有道词典生词本到excel的装换
- 去掉 新版GeForce Experience 桌面录制视频时的 右上角图标
- 被问到项目亮点、难点、遇到的问题、解决思路
- 海康威视监控插件使用步骤
- 四川师范大学计算机系黄宇,黄宇-经济信息工程学院
- aac音频怎么转mp3,这几个方法很简便
- SEO网站优化步骤和技巧小结
- 专升本培训机构如何用自媒体做品牌推广
- Apache 的 X-sendfile
热门文章
- 研究综述 | 多关系知识图谱表示学习综述
- 章乐焱 | 用“科技”监管“科技”,知识图谱能做什么?
- AINLP-Archive:AINLP文章存档计划
- 工业大数据全景解读和应用案例
- 论文学习2-Incorporating Graph Attention Mechanism into Knowledge Graph Reasoning Based on Deep Reinforce
- 2022年中国AI芯片行业深度研究
- 小程序基础能力~网络
- c# 常用数据库封装
- Oracle 直方图理论
- 坑爹的uint32_t