python:classとmethodの作り方について

こんにちは、かずまなぶです。

最近マイクロソフトのホロレンズを試す機会をいただきました。VRとARは似て非なるもの。VRが「没入型、隔離型」なら、ARは「現実にちょっとした情報を上乗せしていく」ような感じでした。

それぞれ特徴があり、またどちらもわたくしの好奇心を激しく揺さぶるデバイスです。ホロレンズ2が出るとの噂があり100%買ってしまいそうです。またオキュラスクエストも発売が近いのではないでしょうか。VRの本命はクエストだと思います。ミラージュは・・・・・、もういいかな・・・。余談はこれくらいにして・・・。

今日の本題です。クラスの作り方とそのメソドの作り方、クラスの継承、オーバーライドをやっていきます。

クラスの使い方 レベル1

まずは最も基本の形です。オブジェクト指向の感覚を養いましょう。

これを実行するとkenjiさんはsay_wordメソドで ” hello world ” と発言します。

クラスの使い方 レベル2

クラスを呼び出したときに勝手に実行される「初期化メソド」、クラスからつくったオブジェクトの変数である「アトリビュート」、おまけにメソドの中でもメソドをネストして使用することができます。

コンストラクタ と デストラクタ  レベル3

コンストラクタ:初期化メソドのようなクラスを呼び出された時点で動作するメソドです。

def __init__(self,name=”名無し”):

デストラクタ:作ったオブジェクトを廃棄するときに使うメソドです。

def __del__(self):

デストラクタを実行するときは、明示的に del personと書くと良いです。

クラスの継承 レベル4

class Car(object):というクラスが予め存在しているとします。

後から作るHondaCarクラスがほとんどCarクラスと同じだった場合、クラスの承継という操作をすることで、Carクラスの持っているメソドを丸ごとコピーできます。これによって、重複するメソドをなくしてスクリプトを綺麗にできます。

class HondaCar(Car): これだけです。

 

クラスのオーバーライド(上書き)レベル5

クラスのオーバーライド(上書き)とは:

クラスを継承したとき全てのメソドを継承するわけですが、その後で”同名のメソド”を定義すると継承したメソドが上書きされ再定義されます。

 

スーパークラス レベル6

スーパークラスとは:

継承した元のクラス、親クラスのことです。

例として、(Carクラス)の__init__初期化メソドを流用してみましょう。

super().__init__(model)の部分です。

まだまだ続きます

随時更新します。classの話は相当奥が深いのです。

2019.5.1 令和元年