拆分条件上下文是不好的形式?

时间:2017-02-15 22:50:49

标签: python caching pickle

我正在为一个基本上是api包装器的函数添加缓存功能。它的要点如下:

def get_data(do_cache, *args):

    if do_cache:
        pkl_id = '/path/to/dir/' + get_cache_id(args) +'.pkl'

        try:
            data = read_data_from_pkl(pkl_id)
            return data
        except FileNotFoundException:
            pass

    data = get_data_from_api(args)

    if do_cache:
        cache_data_to_pkl(data, pkl_id)

    return data

我已经拆分了do_cache个上下文,因为如果这个参数设置为False,那么我既不想读取也不想写入磁盘,只需将结果返回给api调用。

这当然有效,但我的代码味道很糟糕。我的IDE不仅警告我,它无法确定第二个条件上下文中的cache_id是否已创建,但这对我来说感觉很奇怪。有没有人见过这种方法会产生问题?

0 个答案:

没有答案