Skip to main content
 首页 » 编程设计

python之从 CamelCase 生成详细名称

2025年05月04日25sxdcgaq8080

我正在尝试从 Python 中的 CamelCase 字符串中获取冗长的名称,但不知道如何解决这个问题。

这是用例:

class MyClass(object): 
    def verbose_name(self, camelcase): 
        return "my class" 
        # ^-- here I need a way to calculate the 
        #     value using the camelcase argument 
 
    def __str__(self): 
        return self.verbose_name(self.__class__.__name__) 

我试图实现一个解决方案,其中生成 block my 和 class 来检测从小写字母到大写字母的转换,但它非常程序化,不起作用而且它是对于这样一个简单的任务来说变得太复杂了。

对于解决问题的简单实现有什么建议吗?

请您参考如下方法:

如果我对您的要求理解正确,您希望在大小写边界上拆分驼峰式字符串。正则表达式在这里非常方便

尝试下面的实现

>>> ' '.join(re.findall("([A-Z][^A-Z]*)","MyClass")).strip() 
'My Class' 

如果名称不符合 CamelCase,上述实现将失败。在这种情况下,使 caps 可选

>>> test_case = ["MyClass","My","myclass","my_class","My_Class","myClass"] 
>>> [' '.join(re.findall("([A-Z]?[^A-Z]*)",e)) for e in test_case] 
['My Class ', 'My ', 'myclass ', 'my_class ', 'My_ Class ', 'my Class ']