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

Python编程军规

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

军规条例

R~*^3^!S3@)A4JF"@051Testing软件测试网!x&Lj yL0[D

p`%lV/@0军规一:【程序块要采用缩进风格编写,缩进的空格数为4个】51Testing软件测试网Q)t4~0pF

51Testing软件测试网6@'u5m"k E/iTe

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

m2Rj^7M*q5RG051Testing软件测试网E By'Ro l

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

1{wdTJL qeR0

h(~0|*A)U g l X"[tl0军规四:【内部方法或实例变量的下划线前缀要区别应用】

O%yq2u3A T j!F1x051Testing软件测试网,d e#e&Zkj&Q2{P

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

K/eM {f\d;?)B0

5EH0p!g&ZB!w8DDC0军规六:【不要使用难懂的技巧性很高的语句,除非很有必要时】51Testing软件测试网&c2Zr,e4S-N't[

N[@L^)^o0军规七:【去掉没必要的公共变量】51Testing软件测试网O3t*RFqN.Z7Sw

51Testing软件测试网JX'f ~Xh-E/f

军规八:【决定你的属性是否应该私有】51Testing软件测试网 ~A?a0N

51Testing软件测试网r+M/B-EE9Z

军规九:【坚决避免对象之间互相引用】51Testing软件测试网*n!_ OFS q

5b(G*I.bj's)_0军规十:【系统中只使用一种编码】

)wa"g8}M,v.X0

_g&wtn:e^T,x0 51Testing软件测试网 GJa [Z xj B

51Testing软件测试网T9^q i/O a

 51Testing软件测试网Erf&v a

51Testing软件测试网o2U-A_2e

 

/^ L\J-F#u i051Testing软件测试网 j.ZF!T5X/N{ _5C

hi{R R `J h0 51Testing软件测试网3]'I.XDq&X,V

军规说明

*| mr1h'y v051Testing软件测试网 XeuDxBM

51Testing软件测试网*?oO(aH{C4S

军规一:【程序块要采用缩进风格编写,缩进的空格数为4个】51Testing软件测试网 pty G ^

51Testing软件测试网9f}/R}x'N7~{1Y

Python语法缩进的要求,统一规定避免出错。

nK,e;?9d%j0

YEcz7TRu0 51Testing软件测试网n0^A%\(Q g3t+g/~

? ^)jh l1_h/L6]4^ q0军规二:【加载模块应分开,每个模块占一行,避免使用import *】51Testing软件测试网5oj4XaS%t

51Testing软件测试网S(~wS4C

不好的:

Tz*M1HL)BO\,y0

bi:fW_,x0import sys, os51Testing软件测试网@]Ll1r goR"DU

51Testing软件测试网aW n4H0T$M"]

好的:

"v&u8FvrT051Testing软件测试网)O?v \Wj'D

import sys

q5z1|9m:TK0

Ow q!IyZ1| Oh0import os51Testing软件测试网lssY L#xN

`!LG}ZgQ0不过像下面这样则不在此规则限定的范围之内:

0sHc3x g(T"S051Testing软件测试网 _g x&?}2P

from types import StringType, ListType51Testing软件测试网5d)O2O7K@ RB9T azz

1c"M WGD(mFb0 51Testing软件测试网+R9V+M+}C ? B.BZ

51Testing软件测试网9Yxt,ov1T/j

军规三:【命名规范必须与所使用的系统风格保持一致,并在同一项目中统一】51Testing软件测试网'Z ^oH+V(E

51Testing软件测试网hho1mjH

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

v3aV e`+Ot0

%M6M+f p;XM w0H{!v5l0示例: Add_User不允许,AddUser、__AddUser, _AddUser允许。

%L1[3V`9gBa)o!_E;@\051Testing软件测试网3n.j-Ju4|n.CX"S6B;G

 

6|&v-R9Rp1[051Testing软件测试网;i@zuVh hl

军规四:【内部方法或实例变量的下划线前缀要区别应用】51Testing软件测试网 ~{Z2g1`0l,T

51Testing软件测试网7f ] cjq1XA3tr8C

用一个前缀下划线来标明内部方法或实例变量,是不可能和子类或超类属性发生冲突的,即使子类确实想访问它们。

Js^*NUU@0

8m]tP e1|0AV}#k6W0用两个前缀下划线假如仅仅是当前类可以访问的属性,在这种情况下,就可以使用两个下划线作前缀(类私有命名方法,Python1.4引入)。51Testing软件测试网$vNa ~3e

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

51Testing软件测试网R&a` ok(k7d^,vK Q7H

 51Testing软件测试网ZyC P@T

51Testing软件测试网qN#C Hd"]a

军规五:【模块名称的选择要适当的短,并且不要和其它模块名由于大小写的不同而发生命名冲突】51Testing软件测试网f/d"O6p8?

51Testing软件测试网L!S} Kc0{ e

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

51Testing软件测试网 ` fkJcE

 

W H [ G.ZwIH051Testing软件测试网 sT/| NS0}&B

军规六:【不要使用难懂的技巧性很高的语句,除非很有必要时】51Testing软件测试网Z7F#H-N+X'rBy

51Testing软件测试网~SX#|BoH,MQ

说明:高技巧语句不等于高效率的程序,实际上程序的效率关键在于算法。51Testing软件测试网UPll2[.t1m m4L

S.XW1A)~]!oM4Mi*\0 

8x6thOP$L+fg7f051Testing软件测试网c(z.H.WfM8y\X-v

军规七:【去掉没必要的公共变量】

`7aC1J;y(P7F \"K0

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

%YU,OJ6\$g Y-`0

!X9BmLtXI0 

L[8?$A-LK9}0

.Dgalu0军规八:【决定你的属性是否应该私有】51Testing软件测试网0XfI!['IdV(z)TB

51Testing软件测试网9?5z3syZg:p

私有和非公共的区别是:前者对继承类将绝对不会起作用,而后缀将是对继承类有用的。51Testing软件测试网*\7S4Z4\?%q

51Testing软件测试网,GF9_!k-}F|aM

类私有属性应该有两个前缀下划线,没有后缀下划线。非公共属性应该仅仅有一个下划线,没有后缀下划线。51Testing软件测试网Ea]@.`1~9d~

51Testing软件测试网(n+|P*D3{v]?]"K%jZ

 51Testing软件测试网Or?AU1[

z n ^S/Z"V0A;W"f0军规九:【坚决避免对象之间互相引用】

-fy oT!SP051Testing软件测试网"u| b C/T;cD

对象之间互相引用会造成无法回收内存。51Testing软件测试网!f*pX;|%`GP

b wT%yO"E6cn C0 

&ZSl'X9r0

{6o&n1e u0军规十:【系统中只使用一种编码】51Testing软件测试网cyf&GA)hw9J+S Nv N

51Testing软件测试网6BA-s;v;G

这是最重要的一条,只在输入输出系统时对数据进行编码转换,否则后患无穷。51Testing软件测试网R/pJ&v:K}f5P8~


TAG:

 

评分:0

我来说两句

日历

« 2024-02-06  
    123
45678910
11121314151617
18192021222324
2526272829  

数据统计

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

RSS订阅

Open Toolbar