我们拒绝平庸,拒绝随波逐流,拒绝墨守成规,让梦想不再流浪。

Python编程军规

上一篇 / 下一篇  2014-06-23 15:43:36 / 个人分类:编程

军规条例51Testing软件测试网W5J `q%h!`}

51Testing软件测试网ik gBd

51Testing软件测试网Yf]?k$f0s3c

军规一:【程序块要采用缩进风格编写,缩进的空格数为4个】

{oP? k!Yisu/Ue0

![-Cw_Zg0军规二:【加载模块应分开,每个模块占一行,避免使用import *】

8Z9HJf m"gGUv9v0

}A Sr L Z0军规三:【命名规范必须与所使用的系统风格保持一致,并在同一项目中统一】

5Kz%U"x k051Testing软件测试网X3}Iqy%V#V3@Z

军规四:【内部方法或实例变量的下划线前缀要区别应用】

0s^8D,a[ Gv051Testing软件测试网!Ka2w L%g F&O*U;~

军规五:【模块名称的选择要适当的短,并且不要和其它模块名由于大小写的不同而发生命名冲突】51Testing软件测试网1a+o$` H8bV7x8i4L

51Testing软件测试网X,jh5Ip`$n-p!h

军规六:【不要使用难懂的技巧性很高的语句,除非很有必要时】

;?(j;L8}1a j.MG051Testing软件测试网#E.gF1u3j,\c

军规七:【去掉没必要的公共变量】51Testing软件测试网}w:n9i/g"M m

51Testing软件测试网Tem WfL u-F

军规八:【决定你的属性是否应该私有】

?F,m/O'?0Y5w051Testing软件测试网O{:mD _ g

军规九:【坚决避免对象之间互相引用】

2r D,Y(L O[ ]$v051Testing软件测试网$D%F$`(\T'M;I

军规十:【系统中只使用一种编码】

pvF"{ W t4J051Testing软件测试网:^ i0~Lk3@Y$`j3{

 

t5mh+M }%A r%r o\j0

Z*ed1p C0iH B0 

yx6S h6^%I051Testing软件测试网w*c4] Zg9h,D]

 51Testing软件测试网#fq#^3ni.}!`


9F Tvx(XFR051Testing软件测试网Sqq7?i4f,a]

 

*@Rm:xq0军规说明

/hs7hdT1UW-x051Testing软件测试网*t|O[#j

51Testing软件测试网!QF/Z7Cs j}lN

军规一:【程序块要采用缩进风格编写,缩进的空格数为4个】

"LD)rI#u.B051Testing软件测试网{^G+`\&q

Python语法缩进的要求,统一规定避免出错。51Testing软件测试网9~ ^7o"r{j/J

51Testing软件测试网!A&@&M Dh:R;x U1?1cH

 51Testing软件测试网Q(g2K ET

5tM}+a"@Nc0军规二:【加载模块应分开,每个模块占一行,避免使用import *】51Testing软件测试网m7Jtv\d [6Q/o

cn3zId3dDy2x0不好的:51Testing软件测试网s/kY%`i/T6W/{,K

51Testing软件测试网Tc"~xf3l Mg2ny

import sys, os51Testing软件测试网i$i$G;e;t3YZ,Z

51Testing软件测试网Iw)bgK8mv

好的:

+^} d"Q4[%qt3`n7q0

$`&~| TmT ]\9F0import sys

%r#s.C+T3]k0I051Testing软件测试网.sa+HgDp

import os

y$]H F }5s051Testing软件测试网_+Ap&}H;X4|n

不过像下面这样则不在此规则限定的范围之内:

3z0^2XrV:f051Testing软件测试网\6Y6I B*AjVya

from types import StringType, ListType

;C7_C+mTxo051Testing软件测试网a^+H]U#F(X

 

ooa(@7?(SR$[x051Testing软件测试网;AoI h3V V

军规三:【命名规范必须与所使用的系统风格保持一致,并在同一项目中统一】

8e N6eb-h8d2SP%Ow7~S0

.a:TQ#O1K4Ubv0比如采用UNIX 的全小写加下划线的风格或大小写混排的方式,不要使用大小写与下划线混排的方式,用作特殊标识如标识成员变量或全局变量的m_和g_,其后加上大小写混排的方式是允许的。

!pvDLE*K;m3aq0

"mWx1j5~O7T ~ BK0示例: Add_User不允许,AddUser、__AddUser, _AddUser允许。51Testing软件测试网pwq:T3O lKra

51Testing软件测试网q(yp(H:Z~b9p

 

9B0js{D*~B051Testing软件测试网en.[6O[b

军规四:【内部方法或实例变量的下划线前缀要区别应用】51Testing软件测试网&BC#C6]hyU

T7}2?)w x6@0用一个前缀下划线来标明内部方法或实例变量,是不可能和子类或超类属性发生冲突的,即使子类确实想访问它们。51Testing软件测试网_`m!z;i1[

51Testing软件测试网:lePf g v

用两个前缀下划线假如仅仅是当前类可以访问的属性,在这种情况下,就可以使用两个下划线作前缀(类私有命名方法,Python1.4引入)。

V-x.f&B {EW051Testing软件测试网L!HyhL

但是鉴于Python包含了足够的望孔(loophole),因此坚持己见的用户仍然可以获得访问权限,例如:通过__dict__访问属性。51Testing软件测试网({O`U2} Wq

z O+z0y.D(|/|Jy0 

?J8eV@@051Testing软件测试网G s YHa}$o

军规五:【模块名称的选择要适当的短,并且不要和其它模块名由于大小写的不同而发生命名冲突】

dseJ7ep051Testing软件测试网p9gy m&H.ZK

由于模块名称是映射到文件名称,并且有些文件系统不但是大小写不敏感,还会将过长的文件名称截取,因此模块名称的选择要适当的短,并且不要和其它模块名由于大小写的不同而发生命名冲突。虽然这在Unix下不是一个问题,但是当代码被移植到Mac或Windows系统时仍然是个问题。如果文件名内就只有一个类,请注意文件名与类名相同。有多个类时,请视情况而定,如果其它类只是辅助该文件中某个主类,那也请将文件名命名成与主类名相同。51Testing软件测试网Mr8C6nh ^b4[1X:Vg

0BDnx AFxD~ H0 51Testing软件测试网9JQ4qR Ur

z0S7t5OR0军规六:【不要使用难懂的技巧性很高的语句,除非很有必要时】51Testing软件测试网L$a+O"o(B3P:|

51Testing软件测试网Udss?*wI|&E%l

说明:高技巧语句不等于高效率的程序,实际上程序的效率关键在于算法。

p/d3vp)x,}W051Testing软件测试网-riF.hb

 51Testing软件测试网 { G)be`U u l'w

51Testing软件测试网}}Lj `o

军规七:【去掉没必要的公共变量】51Testing软件测试网2w!h/el];jhCP

51Testing软件测试网q*u2?0DI

说明:公共变量是增大模块间耦合的原因之一,故应减少没必要的公共变量以降低模块间的耦合度。

Ls ?)P3@*V&\051Testing软件测试网6vU*Z\*u

 51Testing软件测试网U.c [2K0JFk"L[

L6eU2G2\6Fo5H f0军规八:【决定你的属性是否应该私有】

-l \oi }!B,]NV#Sw Ff051Testing软件测试网1a@k pbv4tC

私有和非公共的区别是:前者对继承类将绝对不会起作用,而后缀将是对继承类有用的。

L~Zo{)|0

6x"P-? kMx,Zg0类私有属性应该有两个前缀下划线,没有后缀下划线。非公共属性应该仅仅有一个下划线,没有后缀下划线。51Testing软件测试网G%Q bU%{,OzK R

7?*x({V+b$E0 

Q9[6QH$vdch]051Testing软件测试网 ~(@4f(kh MaMT2RN

军规九:【坚决避免对象之间互相引用】

TQO(~ M~0

K`p7G-cn0对象之间互相引用会造成无法回收内存。51Testing软件测试网.Ml]I!vr

51Testing软件测试网Dlo0`z1H*kR

 51Testing软件测试网!TrQV.d/Z?c

a#B2W$a&d)`s7w0军规十:【系统中只使用一种编码】51Testing软件测试网)g9}2p2AaV

51Testing软件测试网 S4s,p/j o OB+j3^

这是最重要的一条,只在输入输出系统时对数据进行编码转换,否则后患无穷。51Testing软件测试网zzq5q"cb1k+Lt


TAG:

 

评分:0

我来说两句

日历

« 2024-05-16  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 110700
  • 日志数: 89
  • 图片数: 1
  • 文件数: 15
  • 建立时间: 2013-03-01
  • 更新时间: 2018-08-23

RSS订阅

Open Toolbar