Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk menukar CamelCase ke snake_case dengan cekap dalam Python?
Penukaran daripada CamelCase kepada snake_case ialah transformasi yang kerap dalam pengaturcaraan Python. Soalan ini menumpukan pada mencari cara yang cekap untuk melaksanakan tugas ini.
Kod yang disediakan menggunakan modul semula untuk mencapai penukaran ini:
import semula
name = 'CamelCaseName'
name = re.sub(r'(?print(name) # camel_case_name
Kod ini menggunakan ungkapan biasa untuk memasukkan garis bawah sebelum huruf besar, dan kemudian menukar rentetan yang terhasil kepada huruf kecil. Hasilnya ialah perwakilan sarung ular yang diingini.
Jika prestasi membimbangkan, regex boleh disusun terlebih dahulu:
corak = re.compile(r'(?nama = pattern.sub('_', name).lower()
Untuk kes yang lebih lanjut, pas penggantian berganda boleh digunakan:
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()
Selain itu, kod boleh dilanjutkan untuk mengendalikan berbilang garis bawah:
def to_snake_case(name):
name = re.sub('(.)([A-Z][a-z]+)', r'_', name) name = re.sub('__([A-Z])', r'_', name) name = re.sub('([a-z0-9])([A-Z])', r'_', name) return name.lower()
Selain itu penukaran terbalik daripada snake_case kepada PascalCase disediakan:
name = 'snake_case_name'
name = ''.join(word.title() untuk perkataan dalam name.split('_'))
cetak(nama) # SnakeCaseName
Atas ialah kandungan terperinci Bagaimana untuk menukar CamelCase ke snake_case dengan cekap dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!