驼峰法和下划线命名法的互相转换

主要是接口入参太多,python和java的命名不同,做个转换

# coding:utf8
import re

class StrTransverter(object):
    p = re.compile(r‘([a-z]|\d)([A-Z])‘)
    p2 = re.compile(r‘(_\w)‘)

    def __init__(self,raw_str):
        self.raw_str = raw_str

    def hump2underline(self):
        """
        驼峰法转换为下划线

        """
        sub_str = self.p.sub(r‘\1_\2‘,self.raw_str).lower()
        return sub_str

    def underline2hum(self):
        """
        下划线转换为驼峰法
         """
        sub_str = self.p2.sub(lambda x:x.group(1)[1].upper(), self.raw_str)
        return  sub_str

print StrTransverter(‘abCd‘).hump2underline()
print StrTransverter(‘ab_cd‘).underline2hum()

原文地址:https://www.cnblogs.com/ydf0509/p/8177327.html

时间: 2024-10-08 14:56:55

驼峰法和下划线命名法的互相转换的相关文章

iOS 蛇形式(下划线)命名转化为驼峰式

在解析json的时候,经常json的变量名都是蛇行式(下划线)命名法来命名的,所以写了一个类方法来转换. + (NSString *)convertToCamelCaseFromSnakeCase:(NSString *)key { NSMutableString *str = [NSMutableString stringWithString:key]; while ([str containsString:@"_"]) { NSRange range = [str rangeOfS

驼峰命名和下划线命名互转php实现

驼峰命名和下划线命名经常需要互转,下面提供两种php的实现方式.第一种方法效率相对差一些,实现方式如下: //驼峰命名转下划线命名 function toUnderScore($str) { $dstr = preg_replace_callback('/([A-Z]+)/',function($matchs) { return '_'.strtolower($matchs[0]); },$str); return trim(preg_replace('/_{2,}/','_',$dstr),'

详解 Python 中的下划线命名规则

在 python 中,下划线命名规则往往令初学者相当 疑惑:单下划线.双下划线.双下划线还分前后……那它们的作用与使用场景 到底有何区别呢?今天 就来聊聊这个话题. 1.单下划线(_) 通常情况下,单下划线(_)会在以下3种场景中使用: 1.1 在解释器中: 在这种情况下,“_”代表交互式解释器会话中上一条执行的语句的结果.这种用法首先被标准CPython解释器采用,然后其他类型的解释器也先后采用. >>> _ Traceback (most recent call last): Fil

Java-驼峰命名与下划线命名互转

package com.xsh.util; /** * String工具类 * * @author xieshuang * @date 2019-05-23 */ public class StringUtils { private final static String UNDERLINE = "_"; /*** * 下划线命名转为驼峰命名 * * @param para * 下划线命名的字符串 */ public static String underlineToHump(Stri

驼峰命名法和下划线风格的互转

偶然遇到这个问题,感觉有些意思,于是研究了一下. 下划线转驼峰比较简单,直接根据下划线打散成数组,每个子项首字符转大写,再做字符串拼接即可. 驼峰转下划线风格,稍微复杂一些.刚开始我没有思路,后来想到,可以遍历字符串,遇到大写字母将其转换成小写,并在前面加一个下划线. 最终实现: class CamelTool{ //驼峰命名法转下划线风格 public static function toUnderScore($str){ $array = array(); for($i=0;$i<strle

驼峰命名法和下划线

之前遇到一种命名要求,强制不使用下划线,全部用驼峰命名法来 Mission1GetName(); Mission1_GetName(); 先不说哪种方法好,下面这种缩写的情况..这种命名要求就SB了 Mission1GetWIN32BTNGO();//Mission1 Get WIN32 BTN(Button) GO(Game Object) 缩写混合在一块,如果依然要用这种命名约定,只有这种解决方法: Mission1GetWin32BtnGo 看似可行,但有时候会让人觉得是单词而不是缩写.

Spring Data JPA column 驼峰与下划线的转化

使用Spring data jpa 时,表字段(user_id)与实体(userId)不能对应,需要添加以下配置 参考:https://www.jianshu.com/p/fc2c79814956 峰与下划线的转化 通用配置: application.properties 配置 无修改命名 spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStan

Python 的类的下划线命名有什么不同?

1,以一个下划线开头的命名 ,如_getFile2,以两个下划线开头的命名 ,如__filename3,以两个下划线开头和结尾的命名,如 __init__()4,其它这些命名有什么不同吗 首先是单下划线开头,这个被常用于模块中,在一个模块中以单下划线开头的变量和函数被默认当作内部函数,如果使用 from a_module import * 导入时,这部分变量和函数不会被导入.不过值得注意的是,如果使用 import a_module 这样导入模块,仍然可以用 a_module._some_var

python:类5——Python 的类的下划线命名有什么不同?

首先是单下划线开头,这个被常用于模块中,在一个模块中以单下划线开头的变量和函数被默认当作内部函数,如果使用 from a_module import * 导入时,这部分变量和函数不会被导入.不过值得注意的是,如果使用 import a_module 这样导入模块,仍然可以用 a_module._some_var 这样的形式访问到这样的对象. 在 Python 的官方推荐的代码样式中,还有一种单下划线结尾的样式,这在解析时并没有特别的含义,但通常用于和 Python 关键词区分开来,比如如果我们需