在Python中堆叠装饰器

2024-10-16 20:39:44 发布

您现在位置:Python中文网/ 问答频道 /正文

所以。。。你知道吗

这很管用

def makeBold(fn):
    def wrapped():
        return '<b>'+fn()+'</b>'
    return wrapped
@makeBold
def sayhello():
    return 'Ey yo wassup'

并生成预期的

但是,这不起作用

def makeBold(fn):
    def wrapped():
        return '<b>'+fn()+'</b>'
    return wrapped

def makeItalic(fn):
    def wrapped():
        return '<i>'+fn()+'</i>'

@makeItalic
@makeBold
def sayhello():
    return 'Ey yo wassup'

所有这些都产生了一个很好的非类型错误。。。你知道吗

我以为它会产生类似于

有什么想法?你知道吗


Tags: 类型returndef错误fnsayhelloyowrapped