如何在python中使用decorators更改函数返回值?
我有这个函数和一个decorator@decorator(整数) 我想做一个decorator返回函数,接受整数,然后用如何在python中使用decorators更改函数返回值?,python,decorator,Python,Decorator,我有这个函数和一个decorator@decorator(整数) 我想做一个decorator返回函数,接受整数,然后用numberplaces中的字母替换每个字母。比如说 @decorator(3) def spam(): return "ABCD EFG" 及 如何使装饰器返回函数而不是字符串 为了定义装饰师: def decorator(number): def inner(f): def decorator_f(*args, **kwargs):
number
places中的字母替换每个字母。比如说
@decorator(3)
def spam():
return "ABCD EFG"
及
- 如何使装饰器返回函数而不是字符串
def decorator(number):
def inner(f):
def decorator_f(*args, **kwargs):
result = f(*args, **kwargs)
#make some manipulation on result
return result
return decorator_f
return inner
然后你可以像这样使用它:
@decorator(3)
def spam():
return "ABCD EFG"
为什么不使用普通方法:
def spam(number):
s = "ABCD EFG"
return ''.join(chr(ord(x)+number) if x.isalpha() else x for x in s)
如果必须使用decorator,请按照@Udy所示实现它们,我上面提供的一行是如何返回移位值。decorator是否应该在末尾添加一个随机值?始终添加HIJ?还是什么?它会用
数字位置的字母替换每个字母。e->h,f->i,g->JBE因为我的任务是使用装饰器。这正是我想要做的!非常感谢你!
@decorator(3)
def spam():
return "ABCD EFG"
def spam(number):
s = "ABCD EFG"
return ''.join(chr(ord(x)+number) if x.isalpha() else x for x in s)