Python 编写规范

本文共3847个字,预计阅读时间需要10分钟。

用IDE写Python编写时有时会有标记,但是程序能正常运行,这里的标记是python编写不规范,下面给出一些规范写法。

一行列数 : PEP 8 规定为 79 列,这个太苛刻了,如果要拼接url一般都会超。
一个函数 : 不要超过 30 行代码, 即可显示在一个屏幕类,可以不使用垂直游标即可看到整个函数。
一个类 : 不要超过 200 行代码,不要有超过 10 个方法。
一个模块 : 不要超过 500 行。

不要在一句import中多个库
不推荐
import os, sys

推荐
import os
import sys

IDE显示的问题

错误记录:W292 no newline at end of file
处理:打个回车有新的一空行即可(新行不要有空格)。

错误记录:E302 expected 2 blank lines, found 1
处理:上面只有一行空白,但是需要两个空白行

错误记录:E231 missing whitespace after ‘,’
翻译:“,”后要有空格
举例:
错误 print(“%s %s %s %s %s %s” % (A,B,D,E,K,L))
正确 print(“%s %s %s %s %s %s” % (A, B, D, E, K, L))

错误记录:E225 missing whitespace around operator
翻译:
举例:
错误 print(“%s %s %s %s %s %s”%(A, B, D, E, K, L))
正确 rint(“%s %s %s %s %s %s”% (A, B, D, E, K, L))

错误记录:E225 missing whitespace around operator
举例:
错误 f=open(“D:\\test.txt”, “ab”)
正确 f = open(“D:\\test.txt”, “ab”)

更多错误记录:

code sample message
E1 Indentation
E101 indentation contains mixed spaces and tabs
E111 indentation is not a multiple of four
E112 expected an indented block
E113 unexpected indentation
E114 indentation is not a multiple of four (comment)
E115 expected an indented block (comment)
E116 unexpected indentation (comment)
E121 (*^) continuation line under-indented for hanging indent
E122 (^) continuation line missing indentation or outdented
E123 (*) closing bracket does not match indentation of opening bracket’s line
E124 (^) closing bracket does not match visual indentation
E125 (^) continuation line with same indent as next logical line
E126 (*^) continuation line over-indented for hanging indent
E127 (^) continuation line over-indented for visual indent
E128 (^) continuation line under-indented for visual indent
E129 (^) visually indented line with same indent as next logical line
E131 (^) continuation line unaligned for hanging indent
E133 (*) closing bracket is missing indentation
E2 Whitespace
E201 whitespace after ‘(‘
E202 whitespace before ‘)’
E203 whitespace before ‘:’
E211 whitespace before ‘(‘
E221 multiple spaces before operator
E222 multiple spaces after operator
E223 tab before operator
E224 tab after operator
E225 missing whitespace around operator
E226 (*) missing whitespace around arithmetic operator
E227 missing whitespace around bitwise or shift operator
E228 missing whitespace around modulo operator
E231 missing whitespace after ‘,’, ‘;’, or ‘:’
E241 (*) multiple spaces after ‘,’
E242 (*) tab after ‘,’
E251 unexpected spaces around keyword / parameter equals
E261 at least two spaces before inline comment
E262 inline comment should start with ‘# ‘
E265 block comment should start with ‘# ‘
E266 too many leading ‘#’ for block comment
E271 multiple spaces after keyword
E272 multiple spaces before keyword
E273 tab after keyword
E274 tab before keyword
E275 missing whitespace after keyword
E3 Blank line
E301 expected 1 blank line, found 0
E302 expected 2 blank lines, found 0
E303 too many blank lines (3)
E304 blank lines found after function decorator
E305 expected 2 blank lines after end of function or class
E4 Import
E401 multiple imports on one line
E402 module level import not at top of file
E5 Line length
E501 (^) line too long (82 > 79 characters)
E502 the backslash is redundant between brackets
E7 Statement
E701 multiple statements on one line (colon)
E702 multiple statements on one line (semicolon)
E703 statement ends with a semicolon
E704 (*) multiple statements on one line (def)
E711 (^) comparison to None should be ‘if cond is None:’
E712 (^) comparison to True should be ‘if cond is True:’ or ‘if cond:’
E713 test for membership should be ‘not in’
E714 test for object identity should be ‘is not’
E721 (^) do not compare types, use ‘isinstance()’
E731 do not assign a lambda expression, use a def
E741 do not use variables named ‘l’, ‘O’, or ‘I’
E742 do not define classes named ‘l’, ‘O’, or ‘I’
E743 do not define functions named ‘l’, ‘O’, or ‘I’
E9 Runtime
E901 SyntaxError or IndentationError
E902 IOError
W1 Indentation warning
W191 indentation contains tabs
W2 Whitespace warning
W291 trailing whitespace
W292 no newline at end of file
W293 blank line contains whitespace
W3 Blank line warning
W391 blank line at end of file
W5 Line break warning
W503 (*) line break occurred before a binary operator
W6 Deprecation warning
W601 .has_key() is deprecated, use ‘in’
W602 deprecated form of raising exception
W603 ‘<>’ is deprecated, use ‘!=’
W604 backticks are deprecated, use ‘repr()’

更多python编程规范:

http://blog.csdn.net/igolang/article/details/7886319

读者评分
[评分人数: 0 平均分: 0]

1 位极客 “Python 编写规范

评论

OmegaXYZ