Python PEP8 编码规范 表达式和语句中的空格

不能忍受的事情

在下列情况下,避免使用无关的空格:

  • 紧跟在小括号,中括号或者大括号后。
Yes: spam(ham[1], {eggs: 2})
No:  spam( ham[ 1 ], { eggs: 2 } )
  • 紧贴在逗号、分号或者冒号之前。
Yes: if x == 4: print x, y; x, y = y, x
No:  if x == 4 : print x , y ; x , y = y , x
  • 然而,冒号在切片中就像二元运算符,在两边应该有相同数量的空格(把它当做优先级最低的操作符)。在扩展的切片操作中,所有的冒号必须有相同的间距。例外情况:当一个切片参数被省略时,空格就被省略了。 
    推荐:
ham[1:9], ham[1:9:3], ham[:9:3], ham[1::3], ham[1:9:]
ham[lower:upper], ham[lower:upper:], ham[lower::step]
ham[lower+offset : upper+offset]
ham[: upper_fn(x) : step_fn(x)], ham[:: step_fn(x)]
ham[lower + offset : upper + offset]

  不推荐

ham[lower + offset:upper + offset]
ham[1: 9], ham[1 :9], ham[1:9 :3]
ham[lower : : upper]
ham[ : upper]
  • 紧贴在函数参数的左括号之前。
Yes: spam(1)
No:  spam (1)
  • 紧贴索引或者切片的左括号之前。
Yes: dct[‘key‘] = lst[index]
No:  dct [‘key‘] = lst [index]
  • 为了和另一个赋值语句对齐,在赋值运算符附件加多个空格。 
    推荐:
x = 1
y = 2
long_variable = 3

不推荐:

x             = 1
y             = 2
long_variable = 3

其他建议

  • 避免在尾部添加空格。因为尾部的空格通常都看不见,会产生混乱:比如,一个反斜杠后面跟一个空格的换行符,不算续行标记。有些编辑器不会保留尾空格,并且很多项目(像CPython)在pre-commit的挂钩调用中会过滤掉尾空格。
  • 总是在二元运算符两边加一个空格:赋值(=),增量赋值(+=,-=),比较(==,<,>,!=,<>,<=,>=,in,not,in,is,is not),布尔(and, or, not)。
  • 如果使用具有不同优先级的运算符,请考虑在具有最低优先级的运算符周围添加空格。有时需要通过自己来判断;但是,不要使用一个以上的空格,并且在二元运算符的两边使用相同数量的空格。 
    推荐:
i = i + 1
submitted += 1
x = x*2 - 1
hypot2 = x*x + y*y
c = (a+b) * (a-b)

不推荐:

i=i+1
submitted +=1
x = x * 2 - 1
hypot2 = x * x + y * y
c = (a + b) * (a - b)
  • 在制定关键字参数或者默认参数值的时候,不要在=附近加上空格。 
    推荐:
def complex(real, imag=0.0):
    return magic(r=real, i=imag)

不推荐:

def complex(real, imag = 0.0):
    return magic(r = real, i = imag)
  • 功能型注释应该使用冒号的一般性规则,并且在使用->的时候要在两边加空格。(参考下面的功能注释得到能够多信息) 
    推荐:
def munge(input: AnyStr): ...
def munge() -> AnyStr: ...

不推荐:

def munge(input:AnyStr): ...
def munge()->PosInt: ...
  • 当给有类型备注的参数赋值的时候,在=两边添加空格(仅针对那种有类型备注和默认值的参数)。 
    推荐:
def munge(sep: AnyStr = None): ...
def munge(input: AnyStr, sep: AnyStr = None, limit=1000): ...

不推荐:

def munge(input: AnyStr=None): ...
def munge(input: AnyStr, limit = 1000): ...
  • 复合语句(同一行中的多个语句)通常是不允许的。 
    推荐:
if foo == ‘blah‘:
    do_blah_thing()
do_one()
do_two()
do_three()

不推荐:

if foo == ‘blah‘: do_blah_thing()
do_one(); do_two(); do_three()
  • 虽然有时候将小的代码块和 if/for/while 放在同一行没什么问题,多行语句块的情况不要这样用,同样也要避免代码行太长! 
    最好别这样:
if foo == ‘blah‘: do_blah_thing()
for x in lst: total += x
while t < 10: t = delay()

不推荐:

if foo == ‘blah‘: do_blah_thing()
else: do_non_blah_thing()

try: something()
finally: cleanup()

do_one(); do_two(); do_three(long, argument,
                             list, like, this)

if foo == ‘blah‘: one(); two(); three()

原文地址:https://www.cnblogs.com/40kuai/p/9351506.html

时间: 2024-10-08 23:17:57

Python PEP8 编码规范 表达式和语句中的空格的相关文章

Python PEP8 编码规范中文版-译自官网文件

写在前面(自补):初听PEP8一头雾水,不知所谓.啥是PEP8?为啥叫PEP8?PEP8是干啥的?-先了解下PEP吧. PEP是什么? PEP的全称是Python Enhancement Proposals,其中Enhancement是增强改进的意思,Proposals则可译为提案或建议书,所以合起来,比较常见的翻译是Python增强提案或Python改进建议书. 我个人倾向于前一个翻译,因为它更贴切.Python核心开发者主要通过邮件列表讨论问题.提议.计划等,PEP通常是汇总了多方信息,经过

[python]pep8编码规范

一 代码编排1 缩进.4个空格的缩进(编辑器都可以完成此功能),不使用Tap,更不能混合使用Tap和空格.2 每行最大长度79,换行可以使用反斜杠,最好使用圆括号.换行点要在操作符的后边敲回车.3 类和top-level函数定义之间空两行:类中的方法定义之间空一行:函数内逻辑无关段落之间空一行:其他地方尽量不要再空行. 二 文档编排1 模块内容的顺序:模块说明和docstring—import—globals&constants—其他定义.其中import部分,又按标准.三方和自己编写顺序依次排

Python PEP8 编码规范中文版

原文链接:https://legacy.python.org/dev/peps/pep-0008/ 参考:https://blog.csdn.net/ratsniper/article/details/78954852 Code lay-out 代码布局 Indentation 缩进    Tabs or Spaces 制表符还是空格    Maximum Line Length 行的最大长度    Should a line break before or after a binary ope

(转)Python PEP8 编码规范中文版

转:https://blog.csdn.net/ratsniper/article/details/78954852 原文链接:http://legacy.python.org/dev/peps/pep-0008/ item detail PEP 8 Title Style Guide for Python Code Version c451868df657 Last-Modified 2016-06-08 10:43:53 -0400 (Wed, 08 Jun 2016) Author Gui

Python pep8 编码规范

pep8规范 官方文档:https://www.python.org/dev/peps/pep-0008/ PEP8中文翻译:http://www.cnblogs.com/ajianbeyourself/p/4377933.html 以下内容转自 https://www.douban.com/note/134971609/ PEP8 Python 编码规范 一 代码编排1 缩进.4个空格的缩进(编辑器都可以完成此功能),不使用Tap,更不能混合使用Tap和空格.2 每行最大长度79,换行可以使用

PEP8编码规范,及开发中的一些惯例和建议

为什么要有编码规范 规范的代码给人的第一感觉是[美观],美的东西总是更加的吸引人,也愿意观看.乱糟糟得是不是会让人不由自主地想飙脏话.所以美观进而带来的是代码的[可读性]强,想一想你写的代码可读性非常高,是不是维护起来也更加容易,所以可读性强带来的是代码的[可维护性]强,最终你的代码[健壮性]高,不容易出BUG,出了也容易解决. 错误的代码编写示例 1 from django.conf import settings 2 from user.models import * 3 import sy

Python PEP8 编码规范 注释

与代码相矛盾的注释比没有注释还糟,当代码更改时,优先更新对应的注释!  注释应该是完整的句子.如果一个注释是一个短语或句子,它的第一个单词应该大写,除非它是以小写字母开头的标识符(永远不要改变标识符的大小写!).  如果注释很短,结尾的句号可以省略.块注释一般由完整句子的一个或多个段落组成,并且每句话结束有个句号.  在句尾结束的时候应该使用两个空格.  当用英文书写时,遵循Strunk and White (译注:<Strunk and White, The Elements of Style

Python 常用 PEP8 编码规范和建议

代码布局 缩进 每级缩进用4个空格. 括号中使用垂直隐式缩进或使用悬挂缩进. EXAMPLE: # (垂直隐式缩进)对准左括号 foo = long_function_name(var_one, var_two, var_three, var_four) # (悬挂缩进) 一般情况只需多一层缩进 foo = long_function_name( var_one, var_two, var_three, var_four) # (悬挂缩进) 但下面情况, 需再加多一层缩进, 和后续的语句块区分开

Python PEP8代码规范_20180614

PEP8 代码风格指南 知识点 代码排版 字符串引号 表达式和语句中的空格 注释 版本注记 命名约定 公共和内部接口 程序编写建议 1. 介绍 这份文档给出的代码约定适用于主要的 Python 发行版所有标准库中的 Python 代码.请参阅相似的 PEP 信息,其用于描述实现 Python 的 C 代码规范[1]. 这份文档和 PEP 257(文档字符串约定) 改编自 Guido 的 Python 风格指南原文,从 Barry 的风格指南里添加了一些东西[2]. 随着时间的推移,这份额外约定的