三重if嵌套的重构

现在有一段代码,已经开始在初步重构,图片如下。

函数说明:

1.self.is_ftp:判断是否是需要ftp处理的数据

2.self.is_dir:判断是否是文件夹

3.self.is_pickle:判断是否是pickle类型的文件

4.read:主函数,需要给你一个file_path,就可以自适应的以不同方式获取数据,read函数的if嵌套分三层,由外向内依次为:ftp、dir、pickle

5.process_dir:处理dir及以下的数据

6.process_pkl:梳理pickle以下的数据

图1 待重构的代码

分析:这段代码由三层if嵌套完成。如何将这三层嵌套拆分出来?

思路:

1.如果是共性的,如is_dir,则可以直接在read函数下写出;

2.将ftp、local这样的不同做好标记传入内部函数,内部函数根据传入的标记,定义不同的参数,然后统一调用这些参数名,这样就完成了对不同ftp\local调用不同的参数的目的。

重构后的代码如下:

1.read:主函数

2.process_pkl:read的内部函数,处理ftp、pickle不同的数据


图2 重构后的主函数


图3 重构后的内部函数
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容