Is there a simpler way to modify all arguments in a function before using the arguments?
Aahz
aahz at pythoncraft.com
Sat Nov 10 10:35:11 EST 2012
In article <mailman.3530.1352538537.27098.python-list at python.org>,
Peter Otten <__peter__ at web.de> wrote:
>Miki Tebeka wrote:
>
>>> Is there a simpler way to modify all arguments in a function before using
>>> the arguments?
>>
>> You can use a decorator:
>>
>> from functools import wraps
>>
>> def fix_args(fn):
>> @wraps(fn)
>> def wrapper(*args):
>> args = (arg.replace('_', '') for arg in args)
>> return fn(*args)
>>
>> return wrapper
>>
>> @fix_args
>> def foo(x, y):
>> print(x)
>> print(y)
>
>I was tempted to post that myself, but he said /simpler/ ;)
>From my POV, that *is* simpler. When you change the parameters for foo,
you don't need to change the arg pre-processing. Also allows code reuse,
probably any program needing this kind of processing once will need it
again.
--
Aahz (aahz at pythoncraft.com) <*> http://www.pythoncraft.com/
"....Normal is what cuts off your sixth finger and your tail..." --Siobhan
More information about the Python-list
mailing list