【Python 命名规范学习笔记】

Python 命名规范

  • 一、常见的命名规范
  • 1、驼峰命名法(CamelCase)
  • 1)小驼峰命名法 (lowerCamelCase)
  • 2) 大驼峰命名法(CamelCase)
  • 2、蛇形命名法(snake_case)
  • 3、串式命名法(kebab-case)
  • 二、 语言场景
  • Python 命名规范
  • 一、常见的命名规范

    1、驼峰命名法(CamelCase)

    混合使用大小写字母来构成变量和函数的名字,又分为以下几种

    1)小驼峰命名法 (lowerCamelCase)

    除第一个单词外,其他单词首字母大写。方法名,参数名,成员变量,局部变量需要使用(lowerCamelCase).例:

    getUserInfo
    taskRepository
    findAllByUserInfo
    

    2) 大驼峰命名法(CamelCase)

    所有单词首字母大写 常用于类名,命名空间
    例:

    class TaskDateToSend{}
    class TaskLabelToSend{}
    SettingRepository 
    

    2、蛇形命名法(snake_case)

    蛇形命名法全由小写字母和下划线租车,两个单词之间用下划线连接。测试方法名、常量、枚举名称需要使用。例:

    first_name
    last_name
    LEARNING_RATE //全大写 常量
    

    3、串式命名法(kebab-case)

    各单词间通过划线“-”连接,文件夹等使用。
    也有其他的命名规则,但目前这几个对我来说够用了

    二、 语言场景

    不同的编程语言,使用的命名规则也是不一样的,所以需要具体区分。

    Python 命名规范

    Python 推荐使用蛇形命名法,但有一些细小的规定。

    :使用首字母大写单词串(大驼峰命名法),MyClass,ClassName.内部的类可以使用额外的前导下划线以区分_MyClass
    函数和方法:小写+下划线 (蛇形命名法),method_name
    函数参数 :小写+下划线(蛇形命名法)function_parameter_name.如果函数的参数名称和保留的关键字冲突,通常使用一个后缀下划线,如random_

    保留关键字指语言内部已经定义并有特定含义的单词,不能用作标识符(如变量名、函数名等),这些关键字是 Python 语法的一部分,用于表示控制结构、数据类型、操作符等,比如,if,else,for 等语法

    def create_class(class_, name):
        #创建一个类并返回它的字符串表示
        return f"The class {class_} is named {name}."
        # 调用函数
    result = create_class("Math101", "Algebra")
    print(result)
    
    The class Math101 is named Algebra.
    

    全局变量 对于from M import 导入语句如,果想阻止导入模块内的全局变量可以使用旧有的规范,在全局变量上加一个前导的下划线,如_var_name。应避免使用全局变量
    变量 小写,下划线连接各个单词(蛇形命名法),color_device,this_is_a_variable.

    Attentation:
    1.不论是类成员还是全局变量,都不使用m_或g_前缀,,m可能代表member,g可能代表global,为防止误解所以不允许使用m_或g_前缀

    class MyClass:
        def __init__(self, name, age):
            self.name = name  # 使用下划线而不是 m_name
            self.age = age    # 使用下划线而不是 m_age
    

    2.私有类成员使用单一下划线前缀标识
    1)告知其他开发者该成员是内部使用的,不建议外部访问。2) 提供一定的封装性。3)方便沟通,使用 self._my_private_var 可以让其他开发者清楚该变量是“私有”的,而 self.my_public_var 则是公开的,可以自由访问

    class MyClass:
        def __init__(self):
            self._counter = 0  # 私有成员
    
        def increment(self):
            self._counter += 1
            print(self._counter)
    
    obj = MyClass()
    obj.increment()  # 推荐通过公开方法访问
    print(obj._counter)  # 虽然可以访问,但不推荐这样做
    

    3.变量名不应带有类型信息,因为Python是动态类型语言。如 iValue、names_list、dict_obj 等都是不好的命名

    常量:常量名所有字母大写,下划线连接所有单词。SPEED,NUMBER_TOTAL
    异常:以Error作为后缀
    文件名:全小写,可用下划线
    包(Package):简短的,小写的名字,如需要可加下划线,如mypackage
    模块(Module):与Package相同,mymodule“
    缩写:命名单词尽量全拼,缩写分两种:
    1.常用缩写,XML,ID,在命名时也应只大写首字母如,XmlParser
    2.含有长单词,对某单词缩写,按约定俗称的缩写方式
    function缩写为fn
    text缩写为txt
    object缩写为obj
    count缩写为cnt
    number缩写为num
    前缀后缀下划线
    一个前缀下划线:表示非公有
    一个后缀下划线:避免关键词冲突
    两个前缀下划线:命名类属性引起名称冲突时使用
    两个前缀和后缀下划线:魔法方法”(magic methods),这些方法是 Python 语言中预定义的一些特殊方法,通常由 Python 内部系统使用,或者由某些特定的功能实现(如类的运算符重载、对象生命周期管理等)。例如,init 是一个常见的构造函数,而 str 用于定义对象的字符串表示。绝对不要创造这样的名字。只需要使用它们。

        def __init__(self, value):
            self.value = value
    
        def __str__(self):
            return f"MyClass with value {self.value}"
    
        def __add__(self, other):
            return MyClass(self.value + other.value)
    
        def __len__(self):
            return len(str(self.value))
    
    # 使用魔法方法
    obj1 = MyClass(5)
    obj2 = MyClass(10)
    
    print(str(obj1))  # 调用 __str__(),输出:MyClass with value 5
    print(obj1 + obj2)  # 调用 __add__(),输出:MyClass with value 15
    print(len(obj1))  # 调用 __len__(),输出:1
    

    特定命名方式:xxxx形式的系统保留字命名法。项目中也可以使用这种命名,意义在于这种形式变量是只读的,这种形式的类成员函数尽量不要重载

        def __init__(self, id, parent=None):
            self.id = id          # 只读变量,标识对象的 ID,不应该被修改
            self.parent = parent  # 只读变量,表示该对象的父级,不应该被修改
    
        def message(self, msgid):
            print(f"Message ID: {msgid}")
    

    参考博客: 10分钟了解代码命名规范(Java、Python)

    作者:小陈加油中···

    物联沃分享整理
    物联沃-IOTWORD物联网 » 【Python 命名规范学习笔记】

    发表回复