type
status
date
slug
summary
tags
category
icon
password
Python 代码有一套“约定俗成”的命名规范,通常被称为 PEP 8(Python Enhancement Proposal 8),它是 Python 社区广泛遵守的代码风格指南。良好的命名规范有助于提高代码的可读性、可维护性以及一致性。以下是 PEP 8 中的一些主要命名规范总结:

命名规范

1. 模块(module)与包(package)命名

  • 命名规则:通常使用全小写字母,可以用下划线分隔单词。
  • 格式module_name.py
  • 示例
    • 包名:与模块命名类似,包名通常也是全小写,避免使用下划线。
    • 示例

      2. 类(Class)命名

      • 命名规则:使用驼峰式命名法(CapWords,PascalCase),即单词首字母大写,且不使用下划线。
      • 格式ClassName
      • 示例
        • 异常类:异常类的命名也遵循驼峰式命名,并且通常以 Error 结尾。
        • 示例

          3. 函数和方法(Function & Method)命名

          • 命名规则:使用全小写字母,多个单词之间用下划线分隔。
          • 格式function_name()
          • 示例
            • 私有方法:如果函数或方法是类的私有成员(即不希望在类外部访问),可以在名称前加一个下划线 _
            • 示例

              4. 变量(Variable)命名

              • 命名规则:使用全小写字母,多个单词用下划线分隔。
              • 格式variable_name
              • 示例
                • 常量(Constant):常量使用全大写字母,单词之间用下划线分隔。
                • 格式CONSTANT_NAME
                • 示例
                  • 私有变量:对于类的私有变量,通常在变量名前加一个下划线 _
                  • 示例

                    5. 类的属性(Class Attributes)命名

                    • 命名规则:与普通变量命名规则相同,使用全小写并带有下划线分隔单词。
                    • 实例属性:类的实例属性通常使用全小写命名。
                    • 示例
                      • 类属性:对于类属性(与实例属性不同),通常也是全小写,并用下划线分隔单词。
                      • 示例

                        6. 私有变量和方法

                        • 单下划线 _:表示变量或方法是内部使用的,即“非公开的”,但从技术上讲仍然可以从外部访问。这个是约定俗成的,通常开发者不会直接访问带有 _ 的变量或方法。
                        • 双下划线 __ (名称改写/名称修饰):表示变量或方法是类的私有成员,Python 会对这种变量名进行名称改写,防止子类意外覆写或访问。
                        • 示例
                          • 在类外部,访问 __private_var__private_method 会变得困难,因为 Python 会将其重命名为 _ClassName__private_var_ClassName__private_method

                          7. 全局变量(Global Variables)

                          • 全局变量一般不建议使用,但如果必须使用,命名方式与常量相似,通常使用全大写字母
                          • 示例

                            8. 函数参数的命名

                            • 函数的参数命名遵循与变量命名相同的规则,使用全小写,单词间用下划线分隔。
                            • 示例

                              9. Python 内置命名冲突

                              • 避免使用 Python 的内置函数或模块名作为变量名或函数名,例如 liststridfile 等。覆盖这些内置名称可能导致意外行为。
                              • 示例

                                10. 方法的首参数 selfcls

                                • 在类的方法中,第一个参数通常是实例对象,约定使用 self 表示当前的实例。
                                • 类方法的第一个参数通常是类本身,约定使用 cls 表示当前类。
                                • 示例

                                  11. 测试函数的命名

                                  • 在编写单元测试时,测试函数通常以 test_ 开头,以便于测试框架(如 unittestpytest)识别。
                                  • 示例

                                    12. Docstring 风格

                                    • PEP 8 还建议为函数、类和模块编写文档字符串(docstring),以便清楚地说明其用途和使用方法。
                                    • 示例

                                      13.Python的内置方法

                                      在 Python 中,像 __init__ 这样前后都有双下划线(即“双下划线包裹的命名”)的名称被称为 特殊方法魔术方法(magic methods,或者 dunder methods,"dunder" 是 "double underscore" 的简写)。这些方法是 Python 语言的内置方法,具有特定的用途和行为,它们为类定义了特殊的行为。
                                      __init__ 是 Python 的一个特殊方法,用于类的构造函数,当你创建类的实例时,这个方法会自动调用,用来初始化对象的属性。
                                      • Python 语言会自动调用这些方法,并且它们通常不应该被用户直接调用。例如,你不应该手动调用 obj.__init__(),而是通过 obj = MyClass() 来触发 __init__ 方法的调用。
                                      双下划线包裹的名称是为 Python 内部使用而设计的,通常不建议你在自己的代码中创建类似的名称,避免与 Python 内置的特殊方法冲突。对于私有属性和方法,通常使用单下划线(如 _my_private_method)来表示。

                                      一些实际的例子

                                      • 比如下面这个
                                      logging是一个包,而FileHandler则是这个包里的一个类。

                                      总结

                                      Python 的命名规范(基于 PEP 8)主要强调一致性可读性,以下是主要的命名规则:
                                      • 模块、包:全小写,单词之间用下划线分隔。
                                      • :驼峰命名法(PascalCase)。
                                      • 函数、方法、变量:全小写,单词之间用下划线分隔。
                                      • 常量:全大写,单词之间用下划线分隔。
                                      • 私有变量和方法:使用单下划线 _ 表示内部使用,双下划线 __ 表示类私有。
                                      • 双下划线包裹的方法 是 Python 的内置方法,它们为类定义了特殊的行为,例如对象的创建、销毁、字符串表示、比较、迭代等。
                                       
                                      【Python】运算符重载【Python】有关于import的用法
                                      Loading...