我经常必须执行一些功能,保存输出,然后根据输出内容执行不同的操作。然后将输出用作更多功能的输入。
这会产生非常特定的代码模式。
我觉得我缺少一些简单的东西。 ...似乎可以简化某些逻辑。变量声明,变量检查以及即将在该变量上执行其他操作的操作似乎是多余的。
(试图使代码尽可能适用于每个人,也适用于每个应用程序) 以下是一些适合此困境的示例代码:
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
但这还不够,仍然很多余,对吗?