我可能在这里看起来很愚蠢。但是,我正在编写一些Python代码,这件事让我感到震惊。在蟒蛇有东西叫做装饰它们由@
表示,并且使用“绕”的功能,如:python @decorator与装饰器设计模式有关吗?
class PlotABC(metaclass=ABCMeta):
@property
def figure(self):
if self._figure is None: self.__create_figure()
return self._figure
@abstractmethod
def _prepare_series(self):
pass
我也知道的设计模式条子,我知道有图案装饰叫。然后,一旦我想,“嘿,也许名称相似性不是一个奇怪的巧合。”
我已阅读wiki: Decorator pattern和伟大的答案How to make a chain of function decorators?(几乎整个)。
在我看来,Python的装饰语义真的很强大,可以用来实现设计模式。因为它们允许绕过函数和方法。尽管如此,我仍然感到困惑,因为我对设计模式缺乏经验。我也不知道有这样一种专门针对他们的机制的语言。
可能有人经历了Python和设计模式说,如果蟒蛇语义被刻意营造创建装饰图案?它是更多,更少,还是意味着不同的东西?
也许抛出一些光如何声明一个抽象方法或属性的装饰呢?
[Python装饰器与装饰器模式有什么区别?](http:// stackoverflow。com/questions/8328824/python-decorators-and-decorator-pattern之间的差异) – Marcin
@Marcin我发誓我试图寻找它,哈哈。我也会投票结束我的重复。 – luk32