代码规范.md 3.3 KB

代码规范

参考链接: 谷歌的python代码规范

格式

  1. 不要在行尾加分号,也不要用分号将两条命令放在同一行.
  2. 顶级定义之间空两行, 方法定义之间空一行,严格按照IDE的提示
  3. 每个导入应该独占一行
  4. 通常每个语句应该独占一行

命名

不可使用:

  1. 单字符名称, 除了计数器和迭代器.
  2. 包/模块名中的连字符(-)
  3. 双下划线开头并结尾的名称(Python保留, 例如init)

命名约定

  1. 所谓”内部(Internal)”表示仅模块内可用, 或者, 在类内是保护或私有的.
  2. 用单下划线(_)开头表示模块变量或函数是protected的(使用from module import *时不会包含).
  3. 用双下划线(__)开头的实例变量或方法表示类内私有.
  4. 将相关的类和顶级函数放在同一个模块里. 不像Java, 没必要限制一个类一个模块.
  5. 字典变量以 dic 结尾
  6. 数组亦是以 arr 结尾
  7. 对类名使用大写字母开头的单词(如CapWords, 即Pascal风格), 但是模块名应该用小写加下划线的方式(如lower_with_under.py). 尽管已经有很多现存的模块使用类似于CapWords.py这样的命名, 但现在已经不鼓励这样做, 因为如果模块名碰巧和类名一致, 这会让人困扰.

全名举例

Type Public Private
模块名 lower_with_under _lower_with_under
包名 lower_with_under
类名 CapWords _CapWords
枚举类 CAPS_WITH_UNDER _CAPS_WITH_UNDER
异常 CapWords _CapWords
函数 lower_with_under() _lower_with_under()
全局常量 CAPS_WITH_UNDER _CAPS_WITH_UNDER
类常量 CAPS_WITH_UNDER _CAPS_WITH_UNDER
全局变量 lower_with_under _lower_with_under
类变量 lower_with_under _lower_with_under
实例变量 lower_with_under _lower_with_under (protected) or __lower_with_under (private)
方法名 lower_with_under() _lower_with_under() (protected) or __lower_with_under() (private)
参数名 lower_with_under
局部变量 lower_with_under

  1. 如果一个类不继承自其它类, 就显式的从object继承. 嵌套类也一样.
  2. 类应该在其定义下有一个用于描述该类的文档字符串. 如果你的类有公共属性(Attributes), 那么文档中应该有一个属性(Attributes)段. 并且应该遵守和函数参数相同的格式.

    class SampleClass(object):
    """Summary of class here.
    
    Longer class information....
    Longer class information....
    
    Attributes:
        likes_spam: A boolean indicating if we like SPAM or not.
        eggs: An integer count of the eggs we have laid.
    """
    
    def __init__(self, likes_spam=False):
        """Inits SampleClass with blah."""
        self.likes_spam = likes_spam
        self.eggs = 0
    
    def public_method(self):
        """Performs operation blah."""
    

类成员函数约定

  1. 使用构造函数来进行构造,传入所有可能需要的参数
  2. 文件操作类初始化,定义read函数来读取,write函数来写入

文件操作

必须使用"with"语句来管理文件

访问控制

在Python中, 对于琐碎又不太重要的访问函数, 你应该直接使用公有变量来取代它们