def camel_to_snake(name
):
"""
A function that converts camelCase to snake_case.
Referred from: https://stackoverflow.com/questions/1175208/elegant-python-function-to-convert-camelcase-to-snake-case
"""
import re
s1
= re
.sub
('(.)([A-Z][a-z]+)', r
'\1_\2', name
)
print(s1
)
s2
= re
.sub
('([a-z0-9])([A-Z])', r
'\1_\2', s1
).lower
()
print(s2
)
return s2
class SnakeCaseMetaclass(type):
"""
future_class_name:子类
future_class_attr:子类的属性和方法
"""
def __new__(snakecase_metaclass
, future_class_name
,
future_class_parents
, future_class_attr
):
snakecase_attrs
= {}
for key
, value
in future_class_attr
.items
():
snakecase_attrs
[camel_to_snake
(key
)] = value
return type(future_class_name
, future_class_parents
,snakecase_attrs
)
class SomeClass(metaclass
=SnakeCaseMetaclass
):
camelCaseVar
= 5
print(SomeClass
.camel_case_var
)
输出:
__module__
__module__
__qualname__
__qualname__
camel_CaseVar
camel_case_var
5
转载请注明原文地址: https://mac.8miu.com/read-516305.html