有没有一种特定标识符的命名约定的方法?

Is there a way of naming conventions for a specific identifier?

所以我已将此任务设置为修改,但我不确定问题的含义:

由于编程语言中的标识符不能包含任何空格,所以程序员在声明变量和子程序的名称时使用约定。流行的约定包括 PascalCase(在这些教程中使用)、camelCase、kebab-case 和 snake_case。编写一个函数,它接受三个参数,标识符的两个部分,所需的约定并输出标识符。

例如Shields Up in kebab-case:shields-up - 所有字母均为小写。每个单词用破折号分隔。

snake_case shields_up - 所有字母均为小写。每个单词用下划线分隔

camelCase: shieldsUp - 除第二个单词的第一个字母外,所有字母均为小写。

PascalCase:ShieldsUp - 只有每个单词的首字母大写。

我假设代码要求在每个约定中显示标识符。 我已经厌倦了查找将字符串转换为驼峰命名法的方法,但这是我所能得到的。

如果大家有什么想法,请告诉我! 谢谢

在我的脑海中,驼峰式的一个简单方法是:

>>> def conventionalIdentifier(str1, str2, convention):
...   if(convention == 'camelcase'):
...     return str1.lower() + str2.capitalize()
...   else: #similarly for the rest
...     pass
...
>>> print(conventionalIdentifier('hello', 'there', 'camelcase'))
helloThere

根据我收集到的信息,该问题指定您采用标识符的两个部分,即您只需将两个字符串以特定格式放在一起。

这可能看起来像很多琐碎的代码,但它旨在展示如何模块化该方法,从而在您需要添加其他样式时使其更具可扩展性。

此外,这允许用户将需要构造成指定样式的多个单词传递。与其调用不同的函数,不如调用一个带有指示所需样式的参数的函数。

def kebab(args):
    return '-'.join([arg.lower() for arg in args])

def snake(args):
    return '_'.join([arg.lower() for arg in args])

def camel(args):
    output = [args[0].lower()]
    for arg in args[1:]:
        output.append(arg[0].upper() + arg[1:].lower())
    return ''.join(output)

def pascal(args):
    output = []
    for arg in args:
        output.append(arg[0].upper() + arg[1:].lower())
    return ''.join(output)

CONVENTION = {'k': kebab, 's': snake, 'c': camel, 'p': pascal}

def process(c, args):
    if (func := CONVENTION.get(c.lower(), None)):
        return func(args)
    return None

print(process('s', ['My', 'name','is','jake']))