Python 命名风格、命名指南、类命名

Python中使用的命名风格包括:

  1. 常量:使用大写,如果需要可以加下划线
  2. 私有变量:使用前缀下划线加字母
  3. 函数和方法:使用小写,如果需要可以加下划线
  4. 参数:使用小写,如果需要可以加下划线
  5. 类:驼峰式命名。如果是模块的私有类,还可能有一个前缀下划线
  6. 模块和包:模块名称小写,不带下划线

名称修饰:

在Python中,名称修饰(name-mangling)特性表示如果一个方法和属性使用了双下划线(__),则Python解释器会对这个方法或属性重命名。

class MyClass(object):
    def __sec(self):
        pass

print(MyClass.__dict__)
""
{'__doc__': None, '__module__': '__main__', '_MyClass__sec': 0x7efcf031bd08>, '__dict__': '__dict__' of 'MyClass' objects>, '__weakref__': '__weakref__' of 'MyClass' objects>}
""

但是这种功能并不是建议用来做私有属性用的,而是Python用来避免子类冲突,特别是在多重继承的上下文中。

特殊方法:

特殊方法以双下划线开头和结束,可以称为dunder(double-underscore),它们可用于运算符重载、容器定义等。它们应该集中放在类定义的开头:

class MyClass(object):
    def __repr__(self):
        return 'hello {0}'.format(self.__class__)

    def do_what(self):
        pass

print(MyClass())

""
hello <class '__main__.MyClass'>
""

命名指南:

  1. 用has或is前缀命名布尔元素
  2. 用复数形式命名集合变量
class DB:
    is_connected = False
    has_cache = False

    connected_users = ['ZX']
    tables = {
        'account': ['id', 'name']
    }

类的名称

类的名称必须简明、精确,并足以使人理解类的作用。常见的做法是使用后缀表示其类型或特性:
1. SQLEngine
2. MimeTypes
3. StringWidget

对于基类和抽象类,可以使用一个Base或Abstract前缀:
1. BaseCookie
2. AbstractFormtter

最重要的是要和类的属性保持一致,尽量避免冗余:
1. SMTP.smtp_send() 这个命名空间存在冗余信息
2. SMTP.send() 这个可读性强,好好好!

你可能感兴趣的:(Python)