我可能在這裏看起來很愚蠢。但是,我正在編寫一些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