Discuss / Python / 第二题

第二题

Topic source

西瓜皮w

#1 Created at ... [Delete] [Delete and Lock User]

使用 可变参数,可以省去判断是否为空的步骤

def log4(*text):
    def decorator(func):
        def wrapper(*args, **km):
            for n in text:
                print(n)
            return func(*args, **km)
        return wrapper
    return decorator

葛斯特

#2 Created at ... [Delete] [Delete and Lock User]

@log4
def now():
    pass

now()

这种方式调用的话,在@log4这一行就会出现问题,因为原先的now()函数被当成*text传进去了,在执行到now()这一步就会报错,因为这一步实际上执行的是decorator(func)函数,因为缺少func参数而报错。

只能用:@log4()这种方式才会正常运行。


  • 1

Reply