@classmethodの特別なデコレータの使用例を考えると、オーバーロードされていました(メソッド名がと異なるため、)のコンストラクタですが、何も考えられませんでした。別のコンストラクタを作成する以外にPythonで@classmethodを使用する
What's an example use case for a Python classmethod?のような投稿をチェックアウトしましたが、代わりのコンストラクタを指すユースケースしか見つけることができませんでした。
もう一つのケースは、(上記リンクの@samplebiasで述べたように)メソッドをクラスと結合して関連ロジックをカプセル化することでしたが、@staticmethodは関連するロジックを(誰かが@samplebiasの投稿にコメントしたように)。
私はこの特別なデコレータのいくつかの追加のユースケースを特定できますか?
これまでは、代わりのコンストラクタとしてのみ使用しました。私は**決して使用していない** @staticmethod –
基本クラスと4つのサブクラスが基底から継承している場合、メソッドの呼び出し元となるサブクラスに基づいて、フローロジックを変更したり、その一部を変更したいと考えています。次に、このメソッドが呼び出される(サブ)クラスが必要です。それから私はクラスメソッドが必要です。 – percusse
新しいインスタンスのデフォルト値を設定することもできます(ネットワーク関連の場合、デフォルトのタイムアウト、デフォルトのホストなどを設定するなど)。クラスの属性を設定することでこれを行うことができますが、複数のクラスを同時に設定したい場合は、クラスメソッドが便利です。 – kindall