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() 
Output of python class example

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のドキュメント

コメントを残す 0

Your email address will not be published. Required fields are marked *