これは学問的な質問です。実用的な質問よりも優れています。私はPythonの基礎を掘り下げようとしています。私が望むなら、純粋なPythonでstaticmethod
とclassmethod
のデコレータを実装できますか?staticmethodとclassmethod decoratersを純粋なPythonで実装できますか?
staticmethod
については、元の関数への参照を保持し、最初の引数を省略してもよいでしょうか?
classmethod
については、元の関数への参照を保持し、引数そのものではなく最初の引数の型を渡すことができますか? (私はそれをクラスで直接呼び出すことはできますか?)
もう一度、私のプログラムで実際に実装したいのではありません。私はその言語がどのように機能するかを学びたい。可能であれば、私はコードサンプルを本当に感謝します。もしそうでなければ、理論的にはできない理由を説明していただきたいと思います。ありがとう!
編集:回答とディスクリプタプロトコルへの参照をありがとう!私たちのクラスで__コール__特別なメソッドを実装することで、例えば、記述プロトコルなし
はこれが行うことができる。さらにはPythonの私の理解を拡張するための手段として、私は2つのより多くの事をお聞きしたいのですが?
記述子プロトコルはPython 2.7とPython 3.xで同じように動作しますか?
もう一度おねがいします!
私はこの答えを受け入れるつもりです。それは私の元の質問に対する良い、完全な答えです。しかし、あなたが私の編集にも答えると、私はそれをたくさん感謝します!ありがとう! – Tom