- 2018-8-27
- pythonプログラミング, 総論
- python, メソッドとは
- 【Python入門】メソッドとは?わかりやすく解説します はコメントを受け付けていません
前回の記事ではオブジェクト指向について
解説しました。
オブジェクト指向の記事をまだご覧でない方は
先に、こちらをご覧ください。
⇒【Python入門】オブジェクト指向とは?例題を挙げながら解説
今回解説するメソッドは
オブジェクト指向についての理解がないと
全体像が把握しにくいです。
ここでは簡単に説明しておきますね。
オブジェクト指向という考え方があるのですが・・・
オブジェクトの中に
クラスとインスタンスがあって、
そのクラスの中にメソッドというものを入れることができるんです。
前回の記事では実際に例題を使って
クラスの中にメソッドを実装する練習をしてみました。
⇒【Python入門】オブジェクト指向とは?例題を挙げながら解説
それではここからが本題です。
クラスの中に実装できるメソッドとは
どういうものなのでしょう?
目次
【Python入門】クラスの中に実装できるメソッドについて例題を挙げて解説
記事冒頭でも言いましたが、
メソッドはクラスの中に入っています。
例題を実行しながら解説していきますね。
#例題1 class Pet: #ここはクラス def tiwawa(self): # ここはメソッド print('チワワだワン!') x = Pet() # xはクラスからできたインスタンス x.tiwawa()
例題1で、
class Pet:
ですが、ここはクラス名を設定しています。
Petというクラス名にしました。
次に
def tiwawa(self): # ここはメソッド print('チワワだワン!')
クラスPetの中に
tiwawaというメソッドを実装しました。
tiwawaというメソッドは『チワワだワン!』と表示させるという
ものすごく単純なものです。
で、tiwawaがメソッドとして設定した場合には
()の中にselfと書きます。
tiwawa(self)
とメソッドの場合には書きます。
関数を勉強したことがあるならわかっていただけると思いますが、
tiwawaメソッドの前のdefがあると
どうしてもtiwawaが関数のように感じてしまうこともあります。
でも、tiwawa(self)とselfがあることで
「あ、これは関数でなく、メソッドなんだな」
と誰がみてもわかるわけですね。
関数とかdefについてはこちらの記事で詳しく解説しています。
⇒https://python-introduction.com/?p=879
次に
x = Pet()
とPetというクラスに()をつけることで
インスタンスを生成することができます。
それから、Pet()というインスタンスを変数xに代入しています。
変数の代入についてはこちらの記事で解説しています。
⇒【Python入門】変数の代入についてわかりやすく解説
そして
x.tiwawa()
変数xに代入されたインスタンスからtiwawaメソッドを呼び出します。
実行すると、『チワワだワン!』と表示されます。
こんな感じで、生成されたインスタンスによってメソッドが呼び出されます。
で、tiwawa(self)とselfがあることで、このselfがインスタンス自身を
意味することになります。
selfって英語で自分自身を意味しますからね。
「どうしてselfって書くの?」
と思った方もいるかもしれません。
ただ、これってPythonのルールなんです。
PEP 8というPythonのコーディング規約で定められているんです。
⇒PEP 8はこちら
なので、単純に
tiwawa(self)
と書くものなんだと覚えておきましょう。
【Python入門】結局のところメソッドとはどういうこと?
繰り返しになりますが、
メソッドはクラスに属しています。
で、属しているクラスに対して
動きをみせるものがメソッドといえるでしょう。
例題1では
def tiwawa(self): # ここはメソッド print('チワワだワン!')
と、tiwawaというメソッドは『チワワだワン!』
と表示させるという動きをもっています。
こんな感じでクラス内で、関数みたいな動きを見せるものを
メソッドというという理解で十分でしょう。
【Python】selfを使ってメソッドの中から他のメソッドを呼び出してみる
メソッドの場合、()内にselfと記述します。
tiwawa(self)
といった感じですね。
では例題2をご覧ください。
#例題2 class Pet: #ここはクラス def tiwawa(self): # ここはメソッド self.dachs() #ここのselfはインスタンス。 print('チワワだワン!') def dachs(self): print('ダックスだワン!') x = Pet() # xはクラスからできたインスタンス x.tiwawa()
例題2で
class Pet: #ここはクラス
Petというクラスを作りました。
それから
def tiwawa(self):
tiwawaというメソッドと
def dachs(self):
dachsという2つのメソッドを実装しています。
def dachs(self):
の方のメソッドは『ダックスだワン!』
と表示させるだけです。
これに対して
def tiwawa(self): # ここはメソッド self.dachs() #ここのselfはインスタンス。 print('チワワだワン!')
tiwawaというメソッドは
self.dachs()
selfを使ってdachsメソッドを呼び出しています。
このselfはインスタンス自身を意味しています。
なので、インスタンスから他のメソッド、ここではdachsメソッドを
呼び出すという意味になります。
で、そのあとに『チワワだワン!』
と表示させます。
それから
x = Pet() # xはクラスからできたインスタンス x.tiwawa()
Petというクラスからインスタンスを作り
変数xに代入しています。
そしてtiwawaメソッドを呼び出しています。
実行すると
『ダックスだワン!
チワワだワン!』
と表示されます。
こんな感じでselfを使うことで
メソッドからメソッドを呼び出すことができるわけですね。
以上で解説を終わります。
pythonを学ぶならこちらの動画講座がおすすめです
Python 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイルを学び、実践的なアプリ開発の準備をする
かなり長い講座名ですね。
わかりにくそうな感じがします。ですが、pythonの基礎からしっかりとわかりやすく教えてくれます。
また、きれいなコードを書くための方法についても
教えてくれるので、周りが「どうやってそんなコードを書いてるの?」
とびっくりされるようになるかもしれません。それからWebアプリケーション開発の基本的なテクニックについても
教えてくれます。なので、pythonを使ってwebアプリケーションを作ってみようと
思っている方にもおすすめです。値段は時期によって違います。
詳しくはこちらをご覧ください。
みんなのAI講座 ゼロからPythonで学ぶ人工知能と機械学習
この講座ではまずpythonの基礎を学びます。
次に人工知能について学んでいきます。そして最終的にはpythonを使って文字認識や株価分析ができるような技術力が身につくようになっています。
単純に教科書的なpythonを学ぶのではなく
仕事でも使えるスキルを身につけたい方におすすめの講座です。なのに値段は恐ろしいほど安いです。
時期によって値段は変動するので
詳しくはこちらをご覧ください。
Pythonで機械学習:scikit-learnで学ぶ識別入門
この動画講座は広島大学准教授の先生が担当しています。
機械学習が専門の先生です。すごく深い知識が身につきます。
大学の先生の講義って難しそうってイメージがあるかもしれません。でもそんなことはありません。
すごくわかりやすいです。pythonで機械学習のスキルを身につけたい方におすすめです。
値段は時期によって違いますが、かなり、良心的な価格になっています。詳しくはこちらをご覧ください。