如何将多个函数参数存入单个变量,实现一处修改多处复用?
统一管理请求参数,告别重复修改的麻烦
太懂这种重复改代码的痛苦了!你想要把重复的请求参数整合到单个变量里,后续只改一次就能同步所有请求,这个思路完全正确,咱们用Python的字典+关键字参数解包就能轻松实现。
基础实现:用字典存储共用参数
直接把所有重复的参数塞进一个字典,然后用**操作符把字典解包成关键字参数传给对应的requests方法,这样每个请求调用都变得非常简洁:
def request_function(self): # 把所有共用请求参数统一放在这里,后续改参数只动这一处 request_params = { "url": self.main_url + self.api_url, "json": self.json_file, "headers": self.headers } if self.request_type == "get": return requests.get(**request_params) elif self.request_type == "post": return requests.post(**request_params) elif self.request_type == "delete": return requests.delete(**request_params) elif self.request_type == "put": return requests.put(**request_params)
进阶优化:用方法映射精简判断逻辑
如果觉得一堆if-elif看着不舒服,还可以用一个方法映射字典来替代判断,让代码更简洁易维护,以后加新请求类型也只需要在映射里加一行:
def request_function(self): request_params = { "url": self.main_url + self.api_url, "json": self.json_file, "headers": self.headers } # 建立请求类型与对应requests方法的映射 method_mapping = { "get": requests.get, "post": requests.post, "delete": requests.delete, "put": requests.put } # 通过映射获取方法并调用,这里可以加个默认处理避免KeyError request_method = method_mapping.get(self.request_type) if request_method: return request_method(**request_params) # 可选:处理未知请求类型的情况 raise ValueError(f"Unsupported request type: {self.request_type}")
这样不管是修改参数还是扩展请求类型,都只需要修改对应的字典,彻底告别重复修改的麻烦!
内容的提问来源于stack exchange,提问作者Saba
相关产品推荐
相关产品推荐

