020 Pythonでクラスを作る

2022/03/27

紹介/オブジェクト指向

t f B! P L

Pythonオブジェクトを作成するには,クラスを定義します.
これは,C++やC#といった他のプログラミング言語でも同様です(クラスの定義方法は若干異なりますが,オブジェクトはクラスを定義することで作成します).

まず,例題として,ファンクション・ジェネレータを表すFuncGenクラスを定義することにします.この場合,クラスの定義は,
    class FuncGen:
        # FuncGenクラスの定義の本体(インデントを付けて実装します)
となります(関数の時は def 関数名(引数): だったのと同じです).

一方,定義したFuncGenクラスを使うには,
    funcgen = FuncGen()
とします.

ここで,Pythonを紹介する資料では,Pythonクラスに関して,必ず,
    インスタンス
という言葉が出てきます.
このインスタンスとは,上記の,funcgenとなります.
funcgen(インスタンス)は,FuncGen(クラス)を実体化したものであり,FuncGen(クラス)は定義したものであること(両者は役割が異なります)に注意して下さい.
インスタンスという言葉が出てきたら,それは,上記のfuncgenのように,クラスを実体化したものであるとイメージして下さい.

Pythonスクリプトでは,FuncGenクラスを実体化したfuncgenインスタンスに対して,FuncGenクラスで定義された関数(例えば,set_voltageやget_frequencyなど)を呼び出すことになります.
    funcgen.set_voltage(volt)          # 電位の設定
    freq = funcgen.get_frequency() # 周波数の取得

いきなり難しい概念が出てきましたが,今回は,
   クラスとインスタンスの関係
のみイメージしてもらえば結構です.

次の投稿でも,難しい概念が続きますが,今しばらく我慢して下さい.

このブログを検索

自己紹介

C++やC#を使って数値解析プログラムの開発を長年行ってきました.
今は,Pythonを使った自動処理システムの開発をメインに行っています.

QooQ