在团队合作当中,使用自己的编码风格【适用元类编写】

mac2026-09-21  10

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) # camel_CaseVar:查看自己定义的属性名 s2 = re.sub('([a-z0-9])([A-Z])', r'\1_\2', s1).lower() print(s2) # camel_case_var:转换成功 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 # print(future_class_name, future_class_parents,snakecase_attrs) # 修改后的方法和属性 return type(future_class_name, future_class_parents,snakecase_attrs) # 返回以经过元类修改的子类 class SomeClass(metaclass=SnakeCaseMetaclass): # camel_case_var = 5 # 自己想要的编码风格 camelCaseVar = 5 # 合作者编码的风格 # print( SomeClass.camelCaseVar) # 用元类修改过后不能访问了 print(SomeClass.camel_case_var) # 这里能访问到

输出:

__module__ __module__ __qualname__ __qualname__ camel_CaseVar camel_case_var 5
最新回复(0)