オブジェクト指向について簡単に調べてみたが、難しすぎて理解できなかった。
背景
Pythonはオブジェクト指向言語らしい。私がわずかに触れたことのあるオブジェクト指向言語はC#、C++、Javaなので、同じつもりでPythonを見ていた。しかし触っているうちに、まったく違うもののように思えた。
思えば今までほぼコピペでコードを書き、動けばいいくらいにしか思っていなかった。そのせいか最近書いたPythonコードで、似たような処理を複数箇所で書いてしまうなど、思ったように書けないことに気づいた。原因はもしかしたらオブジェクト指向とやらを理解していないからかもしれない。
そこでオブジェクト指向が何なのか調べてみた。
オブジェクト指向
参考
オブジェクト指向と10年戦ってわかったこと - Qiita
オブジェクト指向と20年戦ってわかったこと - Qiita
オブジェクト指向と24年くらい戦ってわかったこととか - Qiita
私には難しすぎてチンプンカンプンだが勉強になった。感謝。
オブジェクト指向言語はカプセル化できるもの
こちらによると、オブジェクト指向の原則にカプセル化できることがあるらしい。
Pythonはオブジェクト指向言語か?
Pythonはprivateにしてもアクセスできてしまう。つまりカプセル化できないため、オブジェクト指向の原則に反する。
なのにPythonはオブジェクト指向言語と言われている。なぜ?こちらによるとオブジェクト指向にも色々あるらしく、よくわからなかった。
所感
オブジェクト指向という抽象概念を理解する前に、具体的な言語とその書き方を学ぶほうが先決のような気がしてきた。各言語の仕様を知り、思ったように書けるようになれば、少しは理解に近づけるかもしれない。むしろ、それさえ知らないのに、抽象概念を理解しようというのが無理なのかもしれない。