【发布时间】:2017-02-09 21:28:55
【问题描述】:
我在一个项目的一个类中有以下两个函数:
def stage_changes(self, change_set_name):
change_set_id = self._get_change_set_id(change_set_name)
# Perform validation on change set ID
self._stage_changes_internal(change_set_id)
def commit_changes(self, change_set_name):
change_set_id = self._get_change_set_id(change_set_name)
# Perform validation on change set ID (same validation as first function)
# Perform some other computation using change set ID
self._commit_changes_internal(change_set_id, ...)
我希望从这些函数中考虑前两条共享行,即
change_set_id = self._get_change_set_id(change_set_name)
# Perform validation on change set ID
我的问题:
- 在这里使用装饰器真的有意义吗,还是我在一个我应该只调用简单帮助函数的地方太有创意了?
- 如果使用装饰器确实有意义,我将如何构建它?这样做似乎很麻烦,因为我需要在公共结尾中计算的值来在每个函数中执行额外的计算(即共享逻辑不仅仅产生副作用,它返回一个值) .
【问题讨论】: