私はここで愚かに見えるかもしれません。しかし、私はいくつかの python コードを書いていて、これは私を驚かせました。@
Python には、次のような「周りの」関数で示され、使用されるデコレータと呼ばれるものがあります。
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
また、デザイン パターンの断片も知っており、デコレータと呼ばれるパターンがあることも知っています。そしたら「名前が似ているのは偶然じゃないかも」と思ったことがあります。
私はウィキを読みました:Decorator patternと素晴らしい答えHow to make a chain of function decorators? (ほぼ全体)。
Python のデコレーター セマンティクスは非常に強力で、デザイン パターンの実装に役立つように思えます。関数とメソッドをラップできるようにします。とはいえ、私はデザインパターンに慣れていないので、まだ混乱しています。また、このような専用のメカニズムを備えた言語も知りません。
デコレータパターンを作成するためにPythonセマンティクスが意図的に作成された場合、Pythonとデザインパターンの経験がある人は言うことができますか? それはもっと多いですか、それとも少ないですか、それとも別の意味ですか?
そして、メソッドの抽象化またはプロパティの宣言がそれをどのように装飾しているのか、いくつかの光を当ててみませんか?