1、语句比较长,一行写不下的情况下使用1.在括号(包括圆括号、方括号和花括号)内换行,如:classedit(cbase):def_init_(self,parent,width,font=Font,color=black,pos=pos,style=0):或:very_very_very_long_variable_name=edit(parent,width,font,color,pos)如果行长到连第一个括号内的参数都放不下,则每个元素都单独占一行:very_very_very_long_variable_name=ui.widgets.edit(paent,2.在长行加入续行符强行断行,断
2、行的位置应在操作符前,且换行后多一个缩进,以使维护人员看代码的时候看到代码行首即可判定这里存在换行,如:ifcolor=whiteorcolor=blackorcolor=blue:#注意or操作符在新行的行首而不是旧行的行尾do_something(color);命名约定有许多不同的命名风格。以下的有助于辨认正在使用的命名风格,独立于它们的作用。以下的命名风格是众所周知的:b(单个小写字母)b(单个大写字母)lowercase(小写)lower_case_with_underscores(有下划线的小写)uppeRcase(大写)uppeR_case_with_undeRscoRes(有下划
3、线的大写)应避免的名字。永远不要用字符l(小写字母el(就是读音,下同),o(大写字母oh),或i(大写字母eye)作为单字符的变量名。在某些字体中这些字符不能与数字1和0分辨。试着在使用l时用l代替。常量常量名所有字母大写,由下划线连接各个单词,如:white=0xFFFFFFthis_is_a_constant=1变量变量名全部小写,由下划线连接各个单词,如:color=whitethis_is_a_variable=1不论是类成员变量还是全局变量,均不使用m或g前缀。私有类成员使用单一下划线前缀标识,多定义公开成员,少定义私有成员。变量名不应带有类型信息,因为python是动态类型语言。
4、如iValue、names_list、dict_obj等都是不好的命名。全局变量名这些约定和在函数中的一样。模块是被设计为通过“frommimport*”来使用的,必须用一个下划线作全局变量(及内部函数和类)的前缀防止其被导出(exporting)。函数函数名的命名规则与变量名相同。类类名单词首字母大写,不使用下划线连接单词,也不加入c、t等前缀。如:classthisisaclass(object):passs模块模块名全部小写,对于包内使用的模块,可以加一个下划线前缀,如:module.py_internal_module.py包包的命名规范与模块相同。缩写命名应当尽量使用全拼写的单词,缩
5、写的情况有如下两种:1命名中含有长单词,对某个单词进行缩写。这时应使用约定成俗的缩写方式,如去除元音、包含辅音的首字符等方式,例如:function缩写为fn异常名语句2text缩写为txtobject缩写为objcount缩写为cntnumber缩写为num,等。特定命名方式,主要是指_xxx_形式的系统保留字命名法。项目中也可以使用这种命名,它的意义在于这种形式的变量是只读的,这种形式的类成员函数尽量不要重载。如果模块对所有情况定义了单个异常,它通常被叫做“error”或“error”。似乎内建(扩展)的模块使用“error”(例如:os.error),而python模块通常用“error
6、”(例如:xdrlib.error)。趋势似乎是倾向使用capwords异常名importimport语句有以下几个原则需要遵守:(1)import的次序,先importpython内置模块,再import第三方模块,最后import自己开发的项目中的其它模块;这几种模块中用空行分隔开来。(2)一条import语句import一个模块。(3)当从模块中import多个对象且超过一行时,使用如下断行法frommoduleimport(obj1,obj2,obj3,obj4,obj5,obj6)(4)不要使用frommoduleimport*,除非是import常量定义模块或其它你确保不会出现命名
7、空间冲突的模块。分枝和循环对于分枝和循环,有如下几点需要注意的:不要写成一行,如:if!flg:pass和foriinxrange(10):printi都不是好代码,应写成passforiinxrange(10):printi其它建议始终在这些二元运算符两边放置一个空格:赋值(=),比较(=,!=,=,in,notin,is,isnot),布尔运算(and,or,not)。按你的看法在算术运算符周围插入空格。始终保持二元运算符两边空格的一致。一些例子:#!pythoni=i+1submitted=submitted+1x=x*2-1hypot2=x*x+y*yc=(a+b)*(a-b)不要在用
8、于指定关键字参数或默认参数值的=号周围使用空格,例如:defcomplex(real,imag=0。0):returnmagic(r=real,i=imag)注释以#号开头篇二:python开发编码规范python开发编码规范这篇文档所给出的编码约定适用于在主要的python发布版本中组成标准库的python代码,请查阅相关的关于在python的c实现中c代码风格指南的描述。这篇文档改编自guido最初的python风格指南一文,并从barrysstyleguide中添加了部分内容。在有冲突的地方,guide的风格规则应该是符合本pep的意图(译注:指当有冲突时,应以guido风格为准)。这篇
9、pep仍然尚未完成(实际上,它可能永远都不会完成)。在这篇风格指导中的一致性是重要的。在一个项目内的一致性更重要。在一个模块或函数内的一致性最重要。但最重要的是:知道何时会不一致有时只是没有实施风格指导。当出现疑惑时,运用你的最佳判断,看看别的例子,然后决定怎样看起来更好。并且要不耻下问!打破一条既定规则的两个好理由:(1)当应用这个规则是将导致代码可读性下降,即便对某人来说,他已经习惯于按这条规则来阅读代码了。(2)为了和周围的代码保持一致而打破规则(也许是历史原因),虽然这也是个清除其它混乱的好机会(真正的xp风格)。使用emacs的python-mode的默认值:4个空格一个缩进层次。对
10、于确实古老的代码,你不希望产生混乱,可以继续使用8空格的制表符(8-spacetabs)。emacspython-mode自动发现文件中主要的缩进层次,依此设定缩进参数。制表符还是空格永远不要混用制表符和空格。最流行的python缩进方式是仅使用空格,其次是仅使用制表符,混合着制表符和空格缩进的代码将被转换成仅使用空格。(在emacs中,选中整个缓冲区,按esc-x去除制表符。)调用python命令行解释器时使用-t选项,可对代码中不合法得混合制表符和空格发出警告,使用-tt时警告将变成错误。这些选项是被高度推荐的。对于新的项目,强烈推荐仅使用空格而不是制表符。许多编辑器拥有使之易于实现的功能
11、(在emacs中,确认indent-tabs-mode是nil)。行的最大长度周围仍然有许多设备被限制在每行80字符:而且,窗口限制在80个字符。使将多个窗口并排放置成为可能。在这些设备上使用默认的折叠方式看起来有点丑陋。因此,请将所有行限制在最大79字符(emacs准确得将行限制为长80字符),对顺序排放的大块文本(文档字符串或注释),推荐将长度限制在72字符。折叠长行的首选方法是使用pyhon支持的圆括号,方括号和花括号内的行延续。如果需要,你可以在表达式周围增加一对额外的圆括号,但是有时使用反斜杠看起来更好,确认恰当得缩进了延续的行。emacs的python-mode正确得完成了这些。一
12、些例子:classRectangle(blob):def_init_(self,width,height,color=black,emphasis=none,highlight=0):ifwidth=0andheight=0andcolor=redandemphasis=strongorhighlight100:raiseValueerror,sorry,youloseifwidth=0andheight=0and(color=redoremphasisisnone):idontthinksoblob._init_(self,width,height,color,emphasis,highli
13、ght)用两行空行分割顶层函数和类的定义,类内方法的定义用单个空行分割,额外的空行可被用于(保守的)分割相关函数组成的群,在一组相关的单句中间可以省略空行。(例如:一组哑元素)。当空行用于分割方法的定义时,在class行和第一个方法定义之间也要有一个空行。在函数中使用空行时,请谨慎的用于表示一个逻辑段落。python接受contol-l(即l)换页符作为空格:emacs(和一些打印工具),视这个字符为页面分割符,因此在你的文件中,可以用他们来为相关片段分页。python核心发布中的代码必须始终使用ascii或latin-1编码(又名iso-8859-1),使用ascii的文件不必有编码cookie,latin-1仅当注释或文档字符串涉及作者名字需要latin-1时才被使用:另外使用x转义字符是在字符串中包含非ascii(non-ascii)数据的首选方法。作为pep263实现代码的测试套件的部分文件是个例外。导入通常应该在单独的行中导入(imports),例如:no:importsys,os
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1