【Python】命名规则:下划线及大小驼峰规则互转

@descript 匈牙利: 变量名=属性+类型+对象描述; 属性(小写字母+_)<:g_:全局变量; m_:类成员变量; s_:静态变量; c_:常量;> 类型:<b:bool; sz:以零结束的字符串; p:指针; n:整整; dw:双字; l:长整型; 无符号:u; 函数:fn>
@descript 帕斯卡: 命名中的每一个逻辑断点(单词)都用大写字母标记,同大驼峰
@descript 大驼峰: 首字母大写其余每一个逻辑断点(单词)都用大写字母标记,同帕斯卡
@descript 小驼峰: 首字母小写其余每一个逻辑断点(单词)都用大写字母标记
@descript 下划线: 逻辑断点(单词)用的是下划线隔开

 

示例

# -*- coding: utf-8 -*-
import re

class rule_convert:
    """
    命名规则转换 Tips:大小驼峰及下划线互转
    @descript 大驼峰: 首字母大写其余每一个逻辑断点(单词)都用大写字母标记,同帕斯卡命名法
    @descript 小驼峰: 首字母小写其余每一个逻辑断点(单词)都用大写字母标记
    @descript 下划线: 逻辑断点(单词)用的是下划线隔开
    """

    @staticmethod
    def to_Underline(x):
        """转下划线命名"""
        return re.sub('(?<=[a-z])[A-Z]|(?<!^)[A-Z](?=[a-z])', '_\g<0>', x).lower()

    @staticmethod
    def to_upper_camel_case(x):
        """转大驼峰法命名"""
        s = re.sub('_([a-zA-Z])', lambda m: (m.group(1).upper()), x.lower())
        return s[0].upper() + s[1:]

    @staticmethod
    def to_lower_camel_case(x):
        """转小驼峰法命名"""
        s = re.sub('_([a-zA-Z])', lambda m: (m.group(1).upper()), x.lower())
        return s[0].lower() + s[1:]

if __name__ == "__main__":
    a = "USER_NAME"
    b = "UserNamepass"
    print(rule_convert.to_Underline(a))
    print(rule_convert.to_Underline(b))
    print(rule_convert.to_upper_camel_case(a))
    print(rule_convert.to_lower_camel_case(a))

 

执行结果

 

 

字典更新键的方式

d[new_key] = d.pop(key)     # 更新key名为new_key

 

批量更新键 

    def dict_to_params(d: dict):
        """
        将dict中key的原命名规则下划线转换为小驼峰

        :param d: 需要转换的字典
        :return:dict :修改后的dict
        """
        for key in list(d.keys()):
            new_key = rule_convert.to_lower_camel_case(key)
            d[new_key] = d.pop(key)

        return d

 

 

 
posted @ 2023-02-13 17:19  Phoenixy  阅读(2796)  评论(1编辑  收藏  举报