質問: Pythonにおいて、インスタンスメソッドとクラスメソッドがあることはわかるのですが、どう使い分けをしたらいいのでしょうか? 以下のページの最後あたりに「インスタンスを複数作るようなクラスを作ったとき、そのインスタンスの管理を元となったクラスに任せられれば、コードの一貫性が増す。そんなときに使いたいのがクラスメソッドとクラス変数の組み合わせ。」との記載がありましたが、それ以外の使い方がありますでしょうか? http://elicon.blog57.fc2.com/blog-entry-382.html?sp
回答: > > Pythonにおいて、インスタンスメソッドとクラスメソッドがあることはわかるのですが、どう使い分けをしたらいいのでしょうか? > > > 通常はインスタンスメソッドを使います。クラスメソッドは初心者のうちは使う機会はあんまりないような気がします。 > > 以下のページの最後あたりに「インスタンスを複数作るようなクラスを作ったとき、そのインスタンスの管理を元となったクラスに任せられれば、コードの一貫性が増す。そんなときに使いたいのがクラスメソッドとクラス変数の組み合わせ。」との記載がありましたが、それ以外の使い方がありますでしょうか? > > > それ以外の使い方があるかないかでいうと、あるでしょう。しかし、それをすべて列挙するのは不可能だと思います。 凝ったクラス設計をしていて、「これはインスタンスメソッドでは実現できない...そうか、こういう時にクラスメソッドを使うのか」というタイミングが来るはずで、その時初めて使うくらいでよいかと思います。