如果我装饰器没写错,答案是会报错. 目前正在尝试把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-03-28 14:08:45 +08:00
应该是不会, 类装饰器只是把这个类在定义的时候处理了一遍, 子类继承到的是被处理之后的类, 这里可能会受一定的影响, 而不会继承装饰器.
|
3
yushenglin 2019-03-28 17:52:21 +08:00
第一个装饰器相当于返回了一个函数,类不能继承函数类型,肯定会报错呀,第二个相当于重写了类的__new__()函数,下面的类继承了,肯定会有影响呀
|