とぎぷろべい

包丁研ぎとプログラミングと米国株投資についてのなんやかんや

クラス定義について(Python)

f:id:feci:20210726231508j:plain

Python3

 

Python3.8.5におけるクラス定義について。

def main():

 #①クラスを定義してみる
  class caa(object):  # caaクラスを宣言する
    def daa(self):    # caaクラス内にあるdaa関数
      print('ハロー')

 caa = caa()  #変数caa内にcaaクラスのインスタンスを作成
  caa.daa()    #変数caa内のcaaインスタンスからcaaクラス内のdaa関数を実行


#②Python3以降のバージョンであればクラス定義の丸括弧は省略できる
  class cab:          #Python3以降はパレンティスはなくても可
    def dab(self):
      print('ヘロー')

 cab = cab()  #変数cab内にcabオブジェクトを作成
  cab.dab()    #変数cab内のcabオブジェクトからdab関数を実行


#③Python3以降のクラス定義の丸括弧はパラメータを指定せず空でもいい
  class cac():          #クラス定義の丸括弧内は空でもOK(推奨されない記述)
    def dac(self):
      print('hello')

 cac = cac()  #変数cac内にcacオブジェクトを作成
  cac.dac()    #変数cac内のcacオブジェクトからdac関数を実行


if __name__ == '__main__':
  main()

クラス定義とは、その名のとおり新しくクラスを定義してやることです。

 

クラス定義を理解するには、まずクラスとインスタンスとオブジェクトという概念を理解する必要があります。

 

〇クラス

クラスとは、データ処理の設計図のようなもののことです。

料理に例えるのならば、クラスはその料理(処理)のレシピ(設計図)です。

 

インスタンス

インスタンスとは、クラスを実体化させたもののことです。

クラスがお料理でいうところのレシピだとすれば、インスタンスはそのレシピで作ったお料理そのものということになります。

 

〇オブジェクト

オブジェクトは、データを抽象化したもののことです。

クラスとインスタンスをまとめたものをオブジェクトと呼ぶらしいです。

 

 

上記①のスクリプトでは、caaという名前のクラスを定義しています。

このcaaクラスにはdaa関数が入っています。

 

このcaaクラスを実行するには、まずcaaクラスのインスタンスを作る必要があります。

というわけで、caa = caa() と記述して、変数caaの中にcaaクラスのインスタンスを作ります。

 

あとはインスタンスを格納した変数名の後ろにピリオドを付けて呼び出したい関数を実行してやれば、そのオブジェクトの関数を実行することができます。

例:caa.daa() ← 変数caa内のcaaオブジェクトからdaa関数を実行

 

 

関数定義の定形は以下のとおりです。

 

class クラス名(パラメータ):
  def 関数名(パラメータ):
    実行したい処理

 

class クラス名():
  def 関数名(パラメータ):
    実行したい処理

 

class クラス名:
  def 関数名(パラメータ):
    実行したい処理

 

 

クラス定義のパレンティス(丸括弧)の中には、objectという文字列を記述することが多いらしいです。

 

またPython3以降のバージョンでは、クラス定義のパレンティスは省略することも可能です。

または、クラス定義のパレンティス内を空にしておくことも可能です。

 

しかしクラス定義でパレンティス内を空にしておくことは、Pythonのコーディング規則的には推奨された記述ではありません。

基本的には、クラス定義の際はパレンティス内にはobjectと記述しておけば無難かと思います。

 

 

以上です。