パソコン ブログ 資格

Pythonのオブジェクト指向【1】

投稿日:

この記事は、Pythonを触ってみたいけど、オブジェクト指向?なにそれ?美味いの?という方向けに書いています。

そもそもオブジェクト指向とは、現代のプログラミングにおいて欠かせない要素の一つとなっています。

オブジェクト指向と一言で言っても、それ自体で分厚い辞書のような本ができあがるくらい奥深いものです。

初心者の私が理解するのに最も苦労したモノでありますが、どうやら片鱗は理解できたようなので記事にすることにしました。

この記事を見て、私と同じように片鱗が見えてもらえれば非常に嬉しく思います。

Pythonのオブジェクト指向とは?

オブジェクト指向というのは、変数や関数をクラスでひとまとめにしたプログラミングの考え方を言うものです。

それぞれのプラグラムが持つ特性によって若干変化しますが、基本概念は同じものです。

ただ、これを見ただけで半数はブラウザの戻るボタンをクリックしてしまいます。

だって、用語がまずわかんない

そこで、オブジェクト指向の片鱗を理解するためのキーとなるワードをピックアップしてみました。

  • オブジェクト
  • クラス
  • プロパティ
  • インスタンス
  • メソッド
  • 継承

この辺りの単語さえ抑えておけば、きっとオブジェクト指向について何となく「ふーん・・・」程度には理解できるのではないかと思います。

なんでそんなに難しいの?

まず、専門用語が多いこと。

さらに、専門用語のサイトも本も似てるんだけど若干違うことが書いてあったりして、ますます「???」になってしまうんですよね。

なので、オブジェクト指向だけでなく、専門用語についても、どの本を見てもどのサイトを見たとしても、「理解した!」という境地にたどり着くのは難しいというか、無理なんだというのは理解しました(笑)

先程言ったとおり、オブジェクト指向とはあくまでも概念であって、本を書いている人もweb作成者もアプリ開発者も自分なりの経験の中で納得できる答えを見つけて実践しているのだと思います。

ただ自分の経験なだけに、それを他人に伝えるのは激しく難しいのですよね。

要はオブジェクト指向を理解するには経験していくしかないっていう身も蓋もない結論になるわけで、本を読んだから「これはこうだ!」という最適解には至らないのです。

家を建てるところを想像してみよう

とはいえ、せっかく記事にしたので、なるべく理解していただけるように建築に例えて専門用語とPythonのオブジェクト指向について説明します。

オブジェクト

Pythonにおけるオブジェクトとは全部です。

配管だとか、床材だとか、部屋もそうですし、お風呂もトイレもオブジェクトとして扱われます。

メソッド

メソッドは関数です。

建築で例えるなら職人や作業をする人です。

クラス・インスタンス化

クラスはオブジェクトを生成する設計図です。

設計図(クラス)をもとに職人さんや現場の方(メソッド)はオブジェクトを作っていきます。

これをインスタンス化と言います。

プロパティ

他の言語だと「属性」「性質」を意味するものになります。

例えば、このお風呂の容量は満水500リットルというようなものです。

ただ、Pythonでは「機能」という意味合いが強いので省略します。

継承

似たようなオブジェクトを作る際に、中身を引き継ぐことを言います。

例えば、お風呂の配管クラス(設計図)からトイレの配管オブジェクトを作るときに、「太さは同じで、長さだけ変えればいいじゃない」というような場合に使用します。

まとめ

かなり大雑把ですが、Pythonのオブジェクト指向は、このような感じです。

しかしながらあくまでも概念ですので、正しいか正しくないかは受け取り側によります。

アルゴリズムが「最も効率的に処理する考え方」とするならば、「共有できるものは共有しましょうよ」がオブジェクト指向です。

その共有できるものとそうでないもの、似たような性質のものが複雑に絡み合い、それを分別し細分化しなければならないため、オブジェクト指向は難しいのですね。

いかがでしたでしょうか?

まだまだオブジェクト指向の話は続きますが、とりあえず、こんなもんなんだと思っていただければ小躍りして喜びます。

最後までお読みいただきありがとうございました。


  • この記事を書いた人

こなゆき

パーフェクト趣味人。 知的好奇心MAX。 ゲーム・パソコン全般・科学・DIY・オーパーツとか怪しげなものも大好物。

-パソコン, ブログ, 資格

Copyright© さぶかるぐらし , 2019 All Rights Reserved.