Python 编码规范(Google) (一)

Python 风格规范(Google)

本项目并非 Google 官方项目, 而是由国内程序员凭热情创建和维护。

如果你关注的是 Google 官方英文版, 请移步 Google Style Guide

以下代码中 Yes 表示推荐,No 表示不推荐。


分号

不要在行尾加分号, 也不要用分号将两条命令放在同一行。


行长度

每行不超过80个字符

以下情况除外:

  1. 长的导入模块语句
  2. 注释里的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,}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/494664.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前沿科技山雨欲来,四大领域存创新机会

来源&#xff1a;北极光创投摘要&#xff1a;最近&#xff0c;北极光创投董事总经理杨磊&#xff0c;发表了《前沿科技山雨欲来》的主题演讲&#xff0c;他认为目前全球正处于前沿科技爆发前夜&#xff0c;他看好计算构架变革、移动终端、机器人、生物科技与IT融合四大领域的创…

❤JavaScript系列6部曲:语法篇(万字长文)❤

&#x1f388; 作者&#xff1a;不吃西红柿 &#x1f388; 简介&#xff1a;CSDN博客专家&#x1f3c6;、蓝桥签约作者、Python领域优质创作者、信息技术智库公众号创建者✌。技术交流、面试刷题尽管关注咨询我。 热门专栏推荐&#xff1a; &#x1f947; 知识集锦专栏&…

工业机器人发展现状:硬件制造大同小异,视觉感知绘新蓝图

来源 &#xff1a;亿欧摘要&#xff1a;8月15日-8月19日&#xff0c;在北京亦庄国际会展中心举办了为期五天的2018世界机器人大会。小编认为&#xff0c;国内工业机器人的总体水平在未来长期时间将处于稳定上升区&#xff0c;而两极分化趋势愈显。8月15日-8月19日&#xff0c;在…

❤️JavaScript系列6部曲:流程控制(万字长文)❤️

&#x1f388; 作者&#xff1a;不吃西红柿 &#x1f388; 简介&#xff1a;CSDN博客专家&#x1f3c6;、蓝桥签约作者、Python领域优质创作者、「信息技术智库」公号作者✌。技术交流、面试刷题尽管关注咨询我。 热门专栏推荐&#xff1a; &#x1f947; 知识集锦专栏&…

[C# 网络编程系列]专题七:UDP编程补充——UDP广播程序的实现

本专题主要介绍下如何实现UDP广播的程序&#xff0c;下面就直接介绍实现过程和代码以及运行的结果。 一、程序实现 UDP广播程序的实现代码&#xff1a; using System; using System.Net; using System.Net.Sockets; using System.Text; using System.Threading; using System.W…

我们离得开美国的软件和硬件吗?

来源&#xff1a;网易科技摘要&#xff1a;据报道&#xff0c;你当然可以淘汰很多美国产品&#xff0c;但你可能也会因此放弃许多令人惊叹的功能。据报道&#xff0c;你当然可以淘汰很多美国产品&#xff0c;但你可能也会因此放弃许多令人惊叹的功能。例如&#xff0c;超过10亿…

PostgreSQL连接池pgbouncer的使用

今天在虚拟机上整理了下pgbouncer的安装使用过程&#xff0c;记录如下。 说明&#xff1a;pgbouncer是一款轻量级针对postgresql的数据库连接工具&#xff0c;可以对客户端的连接做限制&#xff0c;防止恶意连接&#xff0c;另外也可以减少数据库的实际连接数&#xff0c;从而减…

❤️❤️❤️【资料免费领取】简历模板、职场PPT模板、硬核学习资料+PDF资料(Java、Python、大数据、机器学习)❤️❤️❤️

&#x1f345;【领取方法】 长按识别二维码&#xff0c;回复【资料】领取 目录 1、100套小编购买的简历模板&#xff08;部分截图&#xff09; 2、1000套精品PPT模板&#xff08;部分截图&#xff09; 3、大数据-学习资料&#xff08;1.3G 硬核PDF&#xff0c;官方指南&…

超20亿!2018年国家自然科学基金(重点项目)出炉!

来源&#xff1a;青塔摘要&#xff1a;8月16日&#xff0c;2018年国家自然科学基金评审结果正式揭晓。8月16日&#xff0c;2018年国家自然科学基金评审结果正式揭晓。继昨天发布了2018年国家优青项目各单位的立项情况后&#xff0c;青塔今天又整理重点项目的立项情况和完整名单…

❤️ 珊姐带你学JavaScript:数组和函数 (万文建藏)❤️

&#x1f345; 作者&#xff1a;阿珊 &#x1f345; 简历模板、职场PPT模板、技术交流尽管关注私聊我。 &#x1f345; 期许&#xff1a;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01; 热门专栏推荐&#xff1a; &#x1f947; 大数据集锦…

查看本机打开的端口

一、怎样查看本机打开的端口&#xff1f;1&#xff0e; Windows本身自带的netstat命令 Netstat 显示协议统计和当前的 TCP/IP 网络连接。该命令只有在安装了 TCP/IP 协议后才可以使用。 netstat [-a] [-e] [-n] [-s] [-p protocol] [-r] [interval] 参数 -a 显示所有连接和侦…

产业|中国电子学会发布《机器人十大新兴应用领域(2018-2019年)》

来源&#xff1a; 中国电子学会8月19日&#xff0c;2018世界机器人大会胜利闭幕&#xff0c;闭幕式上中国电子学会发布了《发布机器人十大新兴应用领域&#xff08;2018-2019年&#xff09;》。当前&#xff0c;全球正在经历科技、产业、资本高度耦合、深度迭加的新一轮变革&am…

在linux下添加路由

linux下添加路由的方法&#xff1a;   一&#xff1a;使用 route 命令添加   使用route 命令添加的路由&#xff0c;机器重启或者网卡重启后路由就失效了&#xff0c;方法&#xff1a;   //添加到主机的路由   # route add –host 192.168.168.110 dev eth0   # rout…

2018-2019年新一代AI领域十大最具成长性技术展望

来源&#xff1a;网络大数据摘要&#xff1a;在2018世界机器人大会17日的主论坛上&#xff0c;中国电子学会发布《新一代人工智能领域十大最具成长性技术展望(2018-2019年)》。当前&#xff0c;全球正在经历科技和产业高度耦合、深度迭加的新一轮变革&#xff0c;大数据的形成、…

wzplayer for android V1.0

V1.0上图,哈哈 转载于:https://www.cnblogs.com/weinyzhou/archive/2012/10/12/2750055.html

全球公有云巨头:亚马逊 AWS

来源&#xff1a;乐晴智库精选摘要&#xff1a;亚马逊AWS目前拥有超过1500种产品和2100余种第三方模块&#xff0c;为全球190个国家的企业提供支持。AWS作为亚马逊旗下的云计算服务平台&#xff0c;面向全世界范围的用户提供包括弹性计算、存储、数据库、应用程序在内的一整套云…

地灾应急暨地灾危险性评估培训班学习笔记

前一阵子单位安排到新疆参加了一个培训&#xff0c;关于地灾应急和危险性评估方面的&#xff0c;培训时间不长&#xff0c;不过信息量挺大&#xff0c;学习的时候做了一些读书笔记如下&#xff1a;首先讲到关于加强地质灾害防治工作的内容&#xff0c;其中有提到关于地质灾害信…

❤️爆肝新一代大数据存储宠儿,梳理了2万字 “超硬核” 文章!❤️

&#x1f345; 作者&#xff1a;不吃西红柿 &#x1f345; 简介&#xff1a;CSDN博客专家&#x1f3c6;、信息技术智库公号作者✌。简历模板、职场PPT模板、技术难题交流、面试套路尽管【关注】私聊我。 &#x1f345; 欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有…

埃森哲:技术改变看病的五大趋势!每个人都将受益【附下载】| 智东西内参...

来源&#xff1a;智东西摘要&#xff1a;解读五大科技趋势及其对生活的影响&#xff0c;盘点新兴技术对医疗健康产业的影响案例。全球医疗水准已经达到一个临界点&#xff0c;那就是与技术的深度碰撞&#xff0c;商业与个人医疗的界限在模糊。医疗机构越来越重视智能化技术的作…

php页面缓存

这几天接触了phpcms的页面缓存&#xff0c;有些感触。其好处就不多说了&#xff0c;它一般是用在数据库查询较多的页面中&#xff0c;对于插入修改删除的页面就不大合适了。 这里有缓存技术的简单介绍&#xff1a;http://www.cnblogs.com/penghcn/articles/2720202.html php页面…