python 命名规则

在 Python 编程中,遵循命名规则和约定有助于提高代码的可读性和可维护性。以下是 Python 中常见的命名规则和约定,基于 PEP 8(Python Enhancement Proposal 8)的指导:

1. 变量和函数名称

  • 小写字母,单词间用下划线分隔(snake_case):
    my_variable = 10
    def my_function():
      pass

2. 常量名称

  • 全大写字母,单词间用下划线分隔
    MAX_CONNECTIONS = 100
    DEFAULT_TIMEOUT = 20

3. 类名称

  • 每个单词的首字母大写(PascalCase 或 CamelCase)
    class MyClass:
      pass
    class AnotherExampleClass:
      pass

4. 模块和包名称

  • 全小写字母,可以使用下划线分隔单词(推荐在某些情况下使用下划线分隔)
    import my_module
    import mypackage.mysubpackage

5. 函数和方法参数

  • 首个参数命名为 self,表示类实例
    class MyClass:
      def my_method(self):
          pass
  • 类方法的首个参数命名为 cls,表示类本身
    class MyClass:
      @classmethod
      def my_classmethod(cls):
          pass

6. 私有变量和方法

  • 以下划线开头,表示非公开
    class MyClass:
      def __init__(self):
          self._private_var = 10
      def _private_method(self):
          pass

7. 内置名称

  • 双下划线开头和结尾,这些名称在 Python 中有特殊意义,不要轻易覆盖:
    class MyClass:
      def __init__(self):
          pass
      def __str__(self):
          return "MyClass instance"

8. 文件和目录结构

  • 项目结构示例
    my_project/
    ├── my_package/
    │   ├── __init__.py
    │   ├── module_one.py
    │   ├── module_two.py
    ├── tests/
    │   ├── __init__.py
    │   ├── test_module_one.py
    ├── README.md
    ├── setup.py

9. 命名冲突和避免

  • 避免与 Python 内置名称冲突
    # 避免命名为 list, dict, etc.
    my_list = [1, 2, 3]

10. 其他约定

  • 类属性和方法使用动词命名,例如 get_userupdate_record 等。
  • 命名应尽量表达清晰含义,避免使用单字母变量名(除了循环变量如 i, j 等)。

示例

class UserAccount:
    def __init__(self, username, password):
        self.username = username
        self._password = password

    def check_password(self, password):
        return self._password == password

MAX_ATTEMPTS = 5

def create_user(username, password):
    return UserAccount(username, password)

遵循这些命名规则和约定,有助于确保代码的可读性和一致性,便于团队协作和长期维护。

发表评论