python代码格式三
表达式和语句中的空格
在以下情况下,请避免使用多余的空格:
- 紧靠在括号,方括号或大括号内:
#正确:
spam(ham[1], {eggs: 2})
#错误:
spam( ham[ 1 ], { eggs: 2 } )
2.在尾随逗号和后面的右括号之间:
#正确:
foo = (0,)
#错误:
bar = (0, )
3.在逗号,分号或冒号之前:
#正确:
if x == 4: print x, y; x, y = y, x
#错误:
if x == 4 : print x , y ; x , y = y , x
4.但是,在切片中,冒号的行为类似于二元运算符,并且在每一侧都应具有相等的数量(将其视为优先级最低的运算符)。在扩展切片中,两个冒号必须应用相同的间距。例外:当省略slice参数时,将省略空格:
#正确:
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]
5.紧接在打开括号之后,该括号开始了函数调用的参数列表:
ASCII兼容性
在ASCII范围(U + 0001…U + 007F)中,标识符的有效字符与Python 2.5中的相同。本规范仅引入了ASCII范围之外的其他字符。对于其他字符,分类使用unicodedata模块中包含的Unicode字符数据库版本。
详情请见:
PEP 3131.
类名
类名通常应使用CapWords约定。
在接口被记录并主要用作可调用函数的情况下,可以代替使用函数的命名约定。
请注意,内置名称有一个单独的约定:大多数内置名称是单个单词(或两个单词一起运行),而CapWords约定仅用于异常名称和内置常量。
1.类型变量名
在PEP 484中引入的类型变量的名称通常应使用CapWords,而应使用短名称:T,AnyStr,Num。建议将后缀_co或_contra添加到用于分别声明协变或反变行为的变量中:
from typing import TypeVar
VT_co = TypeVar(‘VT_co’, covariant=True)
KT_contra = TypeVar(‘KT_contra’, contravariant=True)
2.异常名称
因为异常应该是类,所以在这里适用类命名约定。但是,您应该在异常名称上使用后缀“ Error”(如果异常实际上是一个错误)。
3.全局变量名
(我们希望这些变量只能在一个模块内使用。)这些约定与函数的约定大致相同。
设计用于通过M import *使用的模块应使用__all__机制以防止导出全局变量,或使用较早的约定在此类全局变量前加下划线(您可能需要这样做以表明这些全局变量是“非公共模块” ”)。
4.函数和变量名
函数名称应小写,必要时用下划线分隔单词以提高可读性。
变量名与函数名遵循相同的约定。
仅在已经是主流样式(例如threading.py)的上下文中才允许使用mixedCase,以保持向后兼容性。
5.函数和方法参数
使用函数命名规则:小写字母,必要时用下划线分隔单词,以提高可读性。
仅对非公共方法和实例变量使用一个前划线。
为避免名称与子类冲突,请使用两个前导下划线来调用Python的名称处理规则。
Python用类名来修饰这些名称:如果类Foo具有名为__a的属性,则Foo .__ a不能访问它。(坚持的用户仍然可以通过调用Foo._Foo__a来获得访问权限。)通常,双引号下划线仅应用于避免名称与设计为子类的类中的属性发生冲突。