如何简化重复变量检查?

时间:2019-08-01 18:46:42

标签: python

我经常必须执行一些功能,保存输出,然后根据输出内容执行不同的操作。然后将输出用作更多功能的输入。

这会产生非常特定的代码模式。

我觉得我缺少一些简单的东西。 ...似乎可以简化某些逻辑。变量声明,变量检查以及即将在该变量上执行其他操作的操作似乎是多余的。

(试图使代码尽可能适用于每个人,也适用于每个应用程序) 以下是一些适合此困境的示例代码:

    some_sort_of_data=validate(var1, 'type1')       
    if some_sort_of_data.is_bad:
        return some_sort_of_data.is_bad

    more_data=validate(var2, 'type2')
    if more_data.is_bad:
        return more_data.is_bad

    get_special_info=get_parent_of_item(some_sort_of_data.validated_item)
    if get_special_info['error']:
        return get_special_info['data']

    if not (has_access_rights() or
        special_relationship(more_data.validated_item) or 
        some_sort_of_other_permissions(get_special_info['result'])):
            return "Blah Blah blah some sort of incompatibility"

    new_status_result=change_status(some_sort_of_data.validated_item, more_data.validated_item)
    if new_status_result['error']
        return new_status_result['result']

    # If we've passed all the previous checks and managed to get all the way here..
    return "yay did a thing successfully"

...是我还是您?您是否也看到这样的模式 off ?如果是这样,如何最好地简化它?

编辑:我知道您可以通过其他一些语言来简化

if (some_sort_of_data=validate(var1, 'type1')=="success")
    return some_sort_of_data.some_class_variable

代替

some_sort_of_data=validate(var1, 'type1')       
if some_sort_of_data=="success":
    return some_sort_of_data.some_class_variable

但这还不够,仍然很多余,对吗?

0 个答案:

没有答案