私は彼らが何をしているのか知っていますし、両方の例もたくさん見ましたが、staticmethod
に置き換える代わりにclassmethod
を使用しなければならない例が1つ見つかりませんでした。なぜstaticmethodではなくclassmethodを使用するのですか?
私が見てきたclassmethod
の最も一般的な例は、新しいインスタンスクラス自体のを作成するためのであるが、このように(非常に単純化した例、気圧方法のない使用ありませんが、あなたのアイデアを得る。):
class Foo:
@classmethod
def create_new(cls):
return cls()
foo = Foo.create_new()
を呼び出すと、Foo
の新しいインスタンスが返されます。 今、なぜ私はだけではなく、これを使用することはできません。
class Foo:
@staticmethod
def create_new():
return Foo()
それはまったく同じ、なぜ私が今までstaticmethod
上classmethod
を使うべきでしょうか?
@KevinBrydonこのページにはOPの質問に対する*回答*はありませんが、コメントにそこにあるかもしれません。私はそれがこれを閉じるための十分な根拠かどうかわからない – jamylak
この質問は、リンクされた質問の複製ではありません。リンクされた質問への回答は、静的メソッドよりもクラスメソッドを使用する理由、またはその逆を扱うものではありません。 – spacetyper