我有一个我已经抽象的基类。
class X(metaclass=ABCMeta):
@abstractmethod
@tornado.gen.coroutine
def cc(self):
# do stuff
装饰者的顺序应该是什么?这有关系吗?
答案 0 :(得分:2)
堆叠函数修饰符的顺序通常对正确解释(基于程序流程)很重要,在这种情况下,它在the docs中明确说明:
当
abstractmethod()
与其他方法描述符结合使用时,它应该被应用为最里面的装饰器......
所以在你的情况下,你应该交换顺序,使其成为最里面的装饰者。
class X(metaclass=ABCMeta):
@tornado.gen.coroutine
@abstractmethod
def cc(self):
# do stuff