降低功能区的代码复杂度

时间:2019-11-05 03:36:45

标签: python python-3.x class

请需要您的帮助。我有以下方法:

zip

本质上def edit_data(self, **kwargs: dict) -> bool: func_map = { 'supID': self.po_xml.change_supplier_id, 'uniID': self.po_xml.change_university_id, 'creds': self.po_xml.change_sender_credentials, 'billAdd': self.po_xml.change_bill_address, 'shipAdd': self.po_xml.change_ship_address, 'conAdd': self.po_xml.change_contact_address, 'lineItems': self.po_xml.change_line_items, 'ordNo': self.po_xml.change_order_number, } try: dict_only = ['billAdd', 'shipAdd', 'conAdd', ] for key, value in kwargs.items(): # run the function for that key if key not in func_map.keys(): raise LookupError(f'Error in {key}, not a valid function') if type(value) == dict and \ key not in dict_only and \ not func_map[key](**value): raise LookupError( 'Something went wrong, check your variables.') elif key in dict_only and \ not func_map[key](value): raise LookupError( 'Something went wrong, check your variables.') elif type(value) in [str, list] and \ not func_map[key](value): raise LookupError( 'Somethin went wrong, check your variable') return True except LookupError as ie: log.error(ie) return False 接收几种类型的输入(即str,list,dict),如果所有输入都成功,则返回True。上面定义的所有函数如果更新失败均返回False,从而触发edit_data

我知道有一种方法可以进一步降低其复杂性,但是我不太熟悉该如何做。我应该知道有什么LookupError魔术可以帮助您吗?

0 个答案:

没有答案