抽象方法的装饰器顺序
Posted
技术标签:
【中文标题】抽象方法的装饰器顺序【英文标题】:Order of decorator for abstract method 【发布时间】:2016-10-28 04:01:01 【问题描述】:我有一个抽象的基类。
class X(metaclass=ABCMeta):
@abstractmethod
@tornado.gen.coroutine
def cc(self):
# do stuff
装饰器的顺序应该是什么?这有关系吗?
【问题讨论】:
相关:***.com/q/37995862/3001761, ***.com/q/27342149/3001761 【参考方案1】:堆叠函数装饰器的顺序通常对正确解释很重要(基于程序的流程),在这种情况下,它在the docs 中明确说明:
abstractmethod()
与其他方法描述符结合应用时,应作为最内层的装饰器应用...
因此,在您的情况下,您应该交换顺序以使其成为最里面的装饰器。
class X(metaclass=ABCMeta):
@tornado.gen.coroutine
@abstractmethod
def cc(self):
# do stuff
【讨论】:
以上是关于抽象方法的装饰器顺序的主要内容,如果未能解决你的问题,请参考以下文章