CamelCase를 snake_case로 변환하는 우아한 Python 함수?
Python에서 CamelCase를 snake_case로 변환하려면 간단하면서도 우아한 접근 방식이 필요합니다. 이 기사에서는 이러한 변환을 달성하기 위한 몇 가지 효과적인 방법을 탐색하고 명명 규칙의 변형을 해결하고 명확한 예를 제공합니다.
Lookahead/Lookbehind와 함께 정규 표현식 사용
가장 다양한 방법 미리보기 및 뒤돌아보기 어설션과 함께 정규식을 활용합니다.
<code class="python">import re def camel_to_snake(name): name = re.sub(r'(?<!^)(?=[A-Z])', '_', name).lower() return name</code>
이 패턴은 대문자와 소문자 사이의 경계를 일치시켜 밑줄을 삽입하는 동시에 소문자로 변환합니다.
대체 정규식 패턴
더 복잡한 경우에는 다음과 같은 대체 정규식이 있습니다.
<code class="python">pattern = re.compile(r"(\w+)([A-Z]\w+)") name = "_".join(pattern.findall(name))</code>
이 패턴은 여러 대문자가 연속적으로 나타나는 경우를 처리합니다.
"HTTPHeader 변환을 방지하려면 "를 "h_t_t_p_header"로 변경하려면 다음 패턴을 사용하세요.
<code class="python">pattern = re.compile(r"([a-z])([A-Z])") name = "_".join(pattern.findall(name))</code>
다중 패스 대체
대체 접근 방식은 미리보기/뒤돌아보기 사용을 방지합니다.
<code class="python">def camel_to_snake(name): name = re.sub('(.)([A-Z][a-z]+)', r'_', name) return re.sub('([a-z0-9])([A-Z])', r'_', name).lower()</code>
이 접근 방식은 두 개의 대체 패스를 결합하여 다양한 명명 규칙을 처리합니다.
Snake Case를 Pascal Case로
완전성을 위해 snake_case를 PascalCase로 변환하는 함수는 다음과 같습니다. :
<code class="python">def snake_to_pascal(name): name = ''.join(word.title() for word in name.split('_')) return name</code>
이러한 함수는 다양한 명명 규칙에 맞춰 Python에서 CamelCase 및 snake_case 변환에 대한 포괄적인 솔루션을 제공합니다.
위 내용은 Python에서 CamelCase를 snake_case로 우아하게 변환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!