抽象方法的装饰者的顺序

时间:2016-06-25 18:57:59

标签: python tornado

我有一个我已经抽象的基类。

class X(metaclass=ABCMeta):

   @abstractmethod
   @tornado.gen.coroutine
   def cc(self):
      # do stuff

装饰者的顺序应该是什么?这有关系吗?

1 个答案:

答案 0 :(得分:2)

堆叠函数修饰符的顺序通常对正确解释(基于程序流程)很重要,在这种情况下,它在the docs中明确说明:

  

abstractmethod()与其他方法描述符结合使用时,它应该被应用为最里面的装饰器......

所以在你的情况下,你应该交换顺序,使其成为最里面的装饰者。

class X(metaclass=ABCMeta):

    @tornado.gen.coroutine
    @abstractmethod
    def cc(self):
       # do stuff