【プログラミング教育ナビ】は、プログラミング初心者が自分に合った勉強法や教室を見つけられたり、プログラミングに特化した求人が検索できたり、SaaSの比較ができるサイトです。人気講座のある入門スクールや独学できる学習サイトを、口コミ・評判で比較してランキング形式でご紹介しています。言語から探す場所から探す条件から探すrsstwitterfacebook案件獲得できなかったら全額返金!未経験からプロのエンジニアスキルを身につけ、フリーエンジニアとして稼げるまで徹底サポート。まとめはじめにオブジェクト指向の考え方がおおまかにでもつかめましたか?オブジェクト指向の考え方はどの言語でもほぼ共通なので、他の言語を学んだことがある方はそれほど苦労せずに理解できるでしょう。Pythonが初めての言語という方は、とにかくコードを書いて、オブジェクト指向に触れてみることが重要です。実践を通してオブジェクト指向を学んでいきましょう。この記事では、Python初心者の方向けに、Pythonでのオブジェクト指向プログラミングについて説明していきます。自分で指を動かしてプログラミングしましょう。オブジェクト指向のおさらいオブジェクト指向は、オブジェクト(もの、物体)を中心としてプログラミングを進めていくパラダイム(考え方、見方)のことです。数値や日付、ファイルなどがオブジェクトとして捉えることができます。Pythonでは、オブジェクトを表現するために「クラス」と「インスタンス」を使います。クラスの基本的な定義方法からみていきましょう。基本的なクラスの定義方法とインスタンス化クラスには、メンバ変数とメソッド(関数)を持たせることができます。次のような例をみてみましょう。{0}".format(self.name))この例では、Helloクラスを定義して、メンバ変数nameとメソッドsetnameおよびsayを持たせてあります。メンバ変数については通常の変数定義と変わりありませんね。メソッドについては少し違いあります。メソッドは第一引数に自分自身のインスタンス(self)を受け取ります。これがどのように動作するかは、次の例で確認してみましょう。Hello()hello.say()この例では、先程作ったHelloクラスをインスタンス化しています。クラスはインスタンス化しないと使うことができませんので、クラス名でコンストラクタ(関数)を呼び出してインスタンスを変数(hello)に割り当てています。注目してほしいのは、次のsayメソッドです。先程、sayメソッドの引数にselfを定義しました。メソッドを呼び出すときには、第一引数は必要ありません。自動的に自分自身のインスタンス(この例ではhello変数に代入されているオブジェクト)が渡されます。そのため、sayメソッド側では、自分自身のインスタンスに存在するname変数にアクセスできるというわけです。重要なことは、インスタンスは複数作成でき、互いに独立しているということです。次のように同じクラスから2個目のインスタンスを作成しても互いのメンバ変数は影響を受けません。Hello()hello2.setname("Taro")hello.say()hello2.say()この例では、setnameメソッドを使って、name変数を書き換えています。setnameメソッドを呼び出すときの引数が一つだけであることに注意して下さい。実行すると、helloインスタンスとhello2インスタンスではsayメソッドの結果が異なることが確認できるでしょう。このように、インスタンスはクラスのコピーのように振る舞います。オブジェクト指向の真髄は継承にありクラスに関連する話題として、継承(サブクラス)があります。これは、クラスに親子関係を持たせるものです。Cat()cat.setname("tama")cat.call()この例では、3つのクラス(Animal、Dog、Cat)を定義しています。DogクラスとCatクラスの定義をよく見て下さい。この2つのクラスは、Animalクラスを継承しているサブクラスなのです。サブクラスは、親になっているクラスの定義をそのまま引き継ぎます。そのままでは意味がないので、ここではcallメソッドを上書きして再定義しています。実行すると、親のメンバ変数やメソッドを引き継ぎつつ、上書きしたメソッドがしっかり呼び出されていることが確認できるでしょう。このように、継承をうまく使えばコードの重複を防ぐことができます。まとめ実際にコードを書いてみて、オブジェクト指向への理解が深まりましたか?クラスやインスタンス、継承(サブクラス)などの基本的な概念を忘れないようにしましょう。プログラミング初心者の方は、今すぐに理解できなくてもかまいません。オブジェクト指向を意識しつつ、学習を進めていけば、いずれ自然と理解できるようになるでしょう。投稿者:プログラミング教育ナビ編集部tweetプログラミングで挫折しそうなら、現役エンジニアにマンツーマンで相談してみませんか?オンラインのプログラミングスクール「TechAcademy」のメンターが対応。人気の記事まだデータがありません。【プログラミング教育ナビ】は、プログラミング初心者が自分に合った勉強法や教室を見つけられたり、プログラミングに特化した求人が検索できたり、SaaSの比較ができるサイトです。人気講座のある入門スクールや独学できる学習サイトを、口コミ・評判で比較してランキング形式でご紹介しています。