Python クラス(オブジェクト指向)のメリットについて自分なりの理解
オブジェクトを使うと何がいいのか、使わない場合と比較してみた。
(あくまでもプログラミング初心者の個人的な理解)
クラスを使ってやってみる
以下は、クラスを使った 製品情報を操作するプログラム。
以下のようにインスタンス化することで、"製品"を複数作ることができる(数字を覚えさせることができる) さらに、インスタンス化した"製品・もの"を個々に変更させる時に関数や引数を意識する必要がない。これが大きい。
さらに、必要なメンバ(クラスの中で定義している関数)に値を入れるだけで済む。インスタンス化された"製品・もの"はそれぞれ互いに影響されない。
クラスを使わないでやってみる
比較としてクラスを使わず、関数、引数だけで同じようなことをやってみる。summary() を作って、初期値を設定。別途 buy_up() を作成。
以下のように製品ごとに関数に引数を入れて出力させることは出来るが、値を変更する場合など、m = buy_up(10)として在庫を更新させて、その値を summary() に引数としてもたせて上げる必要がある。関数、引数を意識してあげる必要があり面倒くさい。
また、もちろん インスタンス化してるわけではないので、この値は一時的なもので 数字を覚えている"製品・もの"は存在しない。
クラスの継承
他人が作ったクラスを変更したいときにはそのクラスを継承することができる。親クラス、子クラス、またはスーパークラス、サブクラスなどという。
これによって同じようなプログラムを作ることを避け、また何か修正するときには同じ修正を2回しなくても済むようにすることが出来る。
上の例では クラス継承できているものの、summary()では taxもnameも更新されていないので、summary()もオーバーライドで上書きが必要。
いいなと思ったら応援しよう!
今回の"note"を気に入って頂けましたら、是非サポートをお願いいたします!