If/then style question
Steven D'Aprano
steve+comp.lang.python at pearwood.info
Fri Dec 17 03:23:11 EST 2010
On Thu, 16 Dec 2010 20:32:29 -0800, Carl Banks wrote:
> Even without the cleanup issue, sometimes you want to edit a function to
> affect all return values somehow. If you have a single exit point you
> just make the change there; if you have mulitple you have to hunt them
> down and change all of them--if you remember to. I just got bit by that
> one.
If your function has so many exit points that you can miss some of them
while editing, your function is too big, does too much, or both. Refactor
and simplify.
Or wrap the function in a decorator:
def affect_all_return_values(func):
@functools.wraps(func)
def inner(*args, **kwargs):
result = func(*args, **kwargs)
do_something_to(result)
return result
return inner
@affect_all_return_values
def my_big_complicated_function(args):
do_something_with_many_exit_points()
--
Steven
More information about the Python-list
mailing list