Pythonのクラスとオブジェクト
Pythonはオブジェクト指向のプログラミング言語です。Pythonのクラスとオブジェクトは、Pythonプログラミング言語の中核となる要素です。
Pythonクラス
この時点で、皆さんはすでにPythonのデータ型について学んでいるはずです。覚えているかもしれませんが、Pythonの基本的なデータ型は一回のみのデータを参照します。もしも複数のデータ型を含んだデータ型を宣言し、それらを関数の助けを借りて扱えるとしたら、どうでしょうか?Pythonのクラスはそうした機会を提供してくれます。Pythonのクラスは、そのクラスのインスタンスが作成されるための設計図です。
シンプルなPythonクラスの宣言
Pythonクラス定義の非常に基本的な構造は次の通りです。
class ClassName:
# list of python class variables
# python class constructor
# python class method definitions
では、実際の例を使って仕事をしてみましょう。
#definition of the class starts here
class Person:
#initializing the variables
name = ""
age = 0
#defining constructor
def __init__(self, personName, personAge):
self.name = personName
self.age = personAge
#defining class methods
def showName(self):
print(self.name)
def showAge(self):
print(self.age)
#end of the class definition
# Create an object of the class
person1 = Person("John", 23)
#Create another object of the same class
person2 = Person("Anne", 102)
#call member methods of the objects
person1.showAge()
person2.showName()
Pythonクラスの定義
class Person:
この行は、クラス「Person」のクラス定義の開始を示しています。
Pythonのクラス変数
#initializing the variables
name = ""
age = 0
「名前」と「年齢」は、クラス「Person」の二つのメンバ変数です。このクラスのオブジェクトを宣言するたびに、そのオブジェクトにはこれらの変数がメンバとして含まれます。この部分はオプションであり、コンストラクタで初期化することもできます。
Pythonのクラスコンストラクターを言い換えると、「Pythonのクラスのコンストラクター」となります。
#defining constructor
def __init__(self, personName, personAge):
self.name = personName
self.age = personAge
Pythonクラスのコンストラクタは、クラスの新しいオブジェクトを作成する際に実行される最初のコードです。主に、コンストラクタはメンバー変数に値を設定するために使用することができます。また、コンストラクタ内でメッセージを表示して、オブジェクトが作成されたかどうかを確認することもできます。Pythonの継承について学ぶと、コンストラクタのより大きな役割について学びます。コンストラクタメソッドは、def __init__から始まります。その後、最初のパラメータは「self」でなければなりません。これは、クラスのインスタンスへの参照を渡すためです。また、例示されているように追加のパラメータを追加することもできます。’personName’と’personAge’は、新しいオブジェクトを作成する際に送信する2つのパラメータです。
Pythonのクラスメソッド
#defining python class methods
def showName(self):
print(self.name)
以下の方法で宣言されます。
def method_name(self, parameter 1, parameter 2, …….)
statements……..
return value (if required)
事前に述べた例では、メソッドshowName()がそのオブジェクトの「name」の値を表示することがわかりました。Pythonのメソッドについては、別の日にもっと詳しく説明します。
Pythonのクラスオブジェクト
# Create an object of the class
person1 = Person("Richard", 23)
#Create another object of the same class
person2 = Person("Anne", 30)
#call member methods of the objects
person1.showAge()
person2.showName()
Pythonでオブジェクトが作成される方法はかなりシンプルです。まず、新しいオブジェクトの名前を記入し、それに続いて代入演算子とクラスの名前とパラメーターを入力します(これはコンストラクタで定義されたものです)。パラメーターの個数と型は、コンストラクタ関数で受け取るパラメーターと互換性がある必要があります。オブジェクトが作成された後は、メンバーメソッドを呼び出したり、メンバー属性にアクセスしたりすることができます(アクセス可能な場合)。
#print the name of person1 by directly accessing the ‘name’ attribute
print(person1.name)
Pythonクラスの基礎は以上です。次に継承やポリモーフィズムなどのPythonのオブジェクト指向の機能について学ぶ予定ですので、Pythonクラスとその特徴についてもっと学びましょう。それまで、楽しいコーディングをして、さようなら!ご質問があれば、お気軽にコメントしてください。参考:Python.orgのドキュメント