【发布时间】:2016-10-28 04:01:01
【问题描述】:
我有一个抽象的基类。
class X(metaclass=ABCMeta):
@abstractmethod
@tornado.gen.coroutine
def cc(self):
# do stuff
装饰器的顺序应该是什么?这有关系吗?
【问题讨论】:
我有一个抽象的基类。
class X(metaclass=ABCMeta):
@abstractmethod
@tornado.gen.coroutine
def cc(self):
# do stuff
装饰器的顺序应该是什么?这有关系吗?
【问题讨论】:
堆叠函数装饰器的顺序通常对正确解释很重要(基于程序的流程),在这种情况下,它在the docs 中明确说明:
abstractmethod()与其他方法描述符结合应用时,应作为最内层的装饰器应用...
因此,在您的情况下,您应该交换顺序以使其成为最里面的装饰器。
class X(metaclass=ABCMeta):
@tornado.gen.coroutine
@abstractmethod
def cc(self):
# do stuff
【讨论】: