# -*-coding:utf-8-*- """ 定义了程序中用到的数据结果 """ class FundInfo: """ 基金信息 """ def __init__(self): # 基金类型 基金信息字典 基金经理信息字典 当前基金信息类状态(下一步) 需要解析的基金经理列表 self.fund_kind = 'Unknown' self._fund_info = dict() self._manager_info = dict() self.next_step = 'parsing_fund' self.manager_need_process_list = list() def get_info(self, index: list = None, missing: str = '??'): """ 获取基金信息 :param index: 基金信息的列索引,若无,则按照保存信息的字典给出的哈希顺序 :param missing: 列索引无对应值的填充 :return: str 按照给定的列索引返回基金信息,信息之间以 , 分割 """ if index is None: return ','.join(list(self._fund_info.values()) + ['/'.join(self._manager_info.keys()), '/'.join(self._manager_info.values())]) else: return ','.join(self._get_info(i, missing) for i in index) def _get_info(self, index: str, missing: str): """ 内部的获取基金信息的方法 :param index: 要获取的基金信息索引(key) :param missing: 列索引无对应值的填充 :return: str 对应的基金信息 """ if index in self._fund_info.keys(): return self._fund_info[index] elif index == '基金经理' or index == '总任职时间': return '/'.join(self._manager_info.keys()) if index == '基金经理' else '/'.join(self._manager_info.values()) else: return str(missing) def set_fund_info(self, key: str, value: str): """ 设置基金信息 :param key: 基金信息索引 :param value: 基金信息 """ self._fund_info[key] = str(value) def set_manager_info(self, key, value): """ 设置基金经理信息 :param key: 基金经理姓名 :param value: 基金经理信息(目前为str 基金经理的总任职时长) """ self._manager_info[key] = value def get_fund_basic_info(self): """ 获取基金的基本信息,代码名称 :return: (基金名称,基金代码) """ name = self._fund_info.get('基金名称', '无') code = self._fund_info.get('基金代码', '无') return name, code def __repr__(self): return self.get_info()