Pythonでクラスを宣言しクラス内にメソッドを宣言してみます。
なお、メソッド(method)とは、オブジェクトに対して呼び出すことができるラベルです。ラベルとは、ソースコード内の場所を識別する一連の文字(ラベル)であり、識別子(変数、データ型など)の形式をとっているもので、メソッド(method)と似ているものとして、関数(functions)が挙げられますが、関数は、特定のタスクを返すステートメント(実行するアクションを表現しているもの)のブロック(かたまり)です。そして、Pythonでは、関数も他のオブジェクトと同じように、オブジェクトとして扱えます。
また、クラスは、オブジェクトを作成するためのテンプレート(設計図)であり、オブジェクトは、クラスに存在する変数や値、またクラスのすべての動作と属性を共有します。このクラスの動作として、クラス内にメソッドを宣言することができます。宣言したメソッドを介して引数,パラメータを渡すことも可能です。
■Python
今回は、Google Colaboratoryを用います。Google ColaboratoryのPythonのバージョンは、公開時点では「3.7.13」となっています。
■クラス内に宣言したメソッドにアクセスする
それでは実際にクラスを宣言し、さらにクラス内にメソッドを宣言してみます。
■コード
class fruits: def __init__(self,a,b,c): self.a = a self.b = b self.c = c def new(self): print("私の好きなフルーツは"+ self.a +"と、"+ self.b +"です。") object_test = fruits("りんご","みかん","バナナ") object_test.new()
今回はfruits(フルーツ)というクラスを宣言し、クラス内にdef文を用いて__init__とnewという2つのメソッドを定義します。__init__のメソッドが呼び出された時の処理としては括弧内に設定したパラメータ,引数であるa,b,cにそれぞれ値を渡した場合に、それぞれa,b,cというそれぞれの変数(属性)内の値へ格納されるというものです。
次にnewのメソッドが呼び出された時の処理としてはprint()で文字列を出力させるというものですが、この時に__init__のメソッドで処理された各a,b,cという変数(属性)内の情報が出力されます。
関数を定義後、object_testという変数を用意し、その中にfruits()を格納し、インスタンス化を行います。インスタンス化によりオブジェクトが作成されたことで、クラス内に定義したメソッドにアクセスできるようになりました。アクセスできるようになりましたので、fruits()の括弧内に引数,パラメータとして値を渡します。
その後、作成したオブジェクトに対してドット演算子( . )を用いクラス内に定義したメソッド(関数)であるnew()にアクセスしてみます。
なお、クラス内のメソッドで渡される最初の引数,パラメータは、オブジェクト自体でなければならないため、「self(自己)」と記述し、最初の引数として渡します。その後にプログラマーが設定した引数,パラメータが続きます。「self(自己)」は、クラスの現在のインスタンスを指します。必要に応じて、この引数,パラメーターを「self(自己)」以外の名前で呼び出すことができます。
あと、__init__のメソッドは、クラスから新しいオブジェクトが作成されるたびに呼び出されます。
■実行・検証
このセルを保存し、Google Colaboratory上で、セルを実行してみます。
実行してみると、作成したオブジェクトに対してドット演算子( . )を用いることで、クラス内で定義したメソッドにアクセスし、メソッドを呼び出し処理された結果を出力させることができました。
コメント