降低功能区的代码复杂度

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

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魔术可以帮助您吗?

yumikooo 回答:降低功能区的代码复杂度

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3162470.html

大家都在问