
如果我装饰器没写错,答案是会报错. 目前正在尝试把wrapper写成类.
def desc(cls): def wrapper(*args, **kwargs): print(123) return cls(*args, **kwargs) return wrapper @desc class FOOA(object): pass class FOOB(FOOA): pass f = FOOB() 1 chaleaochexist OP 晚上下班回家我会试试, |
2 Trim21 2019 年 3 月 28 日 应该是不会, 类装饰器只是把这个类在定义的时候处理了一遍, 子类继承到的是被处理之后的类, 这里可能会受一定的影响, 而不会继承装饰器. |
3 yushenglin 2019 年 3 月 28 日 第一个装饰器相当于返回了一个函数,类不能继承函数类型,肯定会报错呀,第二个相当于重写了类的__new__()函数,下面的类继承了,肯定会有影响呀 |