注释
注释对自己和后来人对非常重要,特别是对那些很久都没有动过的代码而言,注释尤其重要。注释不能太多,也不能太少,应让注释简洁明了,并书写在合适的位置。良好的注释为每个阅读代码的人节省了时间和精力。注释应保证它的正确性,否则会适得其反。
文档
Python提供了一个机制,可以通过__doc__特别变量,动态获得文档字符串。在模块,类声明,或函数声明中第一个没有赋值的字符串可以用属性obj.__doc__来进行访问,其中obj是一个模块,类,函数的名字。
缩进
众所周知,Python是利用缩进来划分代码块的层次的。你得考虑用什么样的缩进风格来使代码更容易阅读。应该选择多少个空格呢?4个空格是最为合理,Python的创始人也支持这种风格。当使用Tab的时候,不同的文本编辑器对Tab的设置是不一样的。如果你的代码需要跨平台,或者会用不同的文本编辑器打开,建议不使用Tab。
模块结构和布局
用模块来合理组织你的Python代码是简单又自然的方法。你应该建议一种统一且容易阅读的结构,并把它应用到每一个Python文件中去。下面介绍一种合理的布局。
#(1)起始行(unix/linux)
#(2)模块文档
#(3)模块导入
#(4)变量定义
#(5)类定义
#(6)函数定义
#(7)主程序
(1) 起始行
通常只有在类Unix环境下才使用起始行,有起始行就能够仅输入脚本文件来执行脚本,无需直接调用解释器。
(1) 模块文档
简要介绍模块的功能及重要全局变量的含义,模块外可通过module.__doc__来访问这些文档(module为模块名字)
(3) 模块导入
导入当前模块的代码所需要的所有模块每个模块仅被导入一次。
(4) 变量定义
定义全局变量,本模块中所有函数都可直接使用。从好的编程风格角度说,除非必须,否则尽量用局部变量代替全局变量,这样代码更加容易维护,还可以提高性能并节省内存。
(5) 类定义语句
所有的类都需要在这里定义。当模块被导入时class语句会被执行,类就会定义。类的文档变量是class.__doc__。
(6) 函数定义语句
此处定义的函数可以通过module.function()在外部被访问到, 当模块被导入时def语句会被执行,函数就被定义。
(7) 主程序
根据不同的执行模式调用不同的函数。