cpws
class LinkNode: # 结点def __init__(self, condition: iter):self.condition = condition # name: listself.next = Noneclass BaseNode: # 单链表结点def __init__(self, **kw):self.next = Nonefor k, v in kw.items():self.__setattr__(k, v)class SingleLinkList: # 单链表def __init__(self, node):self.head = Noneself.tail = Noneself.node = nodedef append(self, *args, **kw):if self.head is None:self.head = self.tail = self.node(*args, **kw)else:self.tail.next = self.node(*args, **kw)self.tail = self.tail.next@classmethoddef create_then_append(cls, *args, node=BaseNode):"""args有序"""instance = cls(node=node)for arg in args:instance.append(arg)return instanceclass ConditionEnum(Enum):AREA = "s33"WSLX_LIST = "s6"AY_LIST = "s11"FY_LIST = "s4"AJLX_LIST = "s8"class ConditionDynamicSingleLink(SingleLinkList):"""根据ConditionEnum字段结合初始数据动态创建单向链表"""def __init__(self, init: dict, *args, **kw):super().__init__(*args, **kw)for field in [i.value for i in ConditionEnum]:if init.get(field):self.append(init.get(field))
