Pythonのクラスとオブジェクト

Pythonはオブジェクト指向のプログラミング言語です。 Pythonのクラスとオブジェクトは、Pythonプログラミング言語の中核をなす構成要素です。

Pythonクラス

この時点で、皆さんはすでにPythonのデータ型について学んでいるはずです。覚えているかもしれませんが、Pythonの基本データ型は一度に1種類のデータのみを参照します。ある関数の助けを借りて、1つのデータ型に複数のデータ型を含め、それらと一緒に動作することができたらどうでしょうか? Pythonクラスは、そのような機会を提供します。 Pythonクラスは、そのクラスのインスタンスが作成される設計図です。

シンプルなPythonクラス宣言

ここに、Pythonクラス定義の非常に基本的な構造があります。

class ClassName:  
    # Pythonクラス変数のリスト  
    # Pythonクラスのコンストラクタ  
    # Pythonクラスメソッドの定義

では、実際の例を見てみましょう。

#クラスの定義はここから始まります  
class Person:  
    #変数の初期化  
    name = ""  
    age = 0  
      
    #コンストラクタの定義  
    def __init__(self, personName, personAge):  
        self.name = personName  
        self.age = personAge  
  
    #クラスメソッドの定義  
    def showName(self):  
        print(self.name)  
  
    def showAge(self):  
        print(self.age)  
          
    #クラス定義の終わり  
  
# クラスのオブジェクトを作成  
person1 = Person("John", 23)  
#同じクラスの別のオブジェクトを作成  
person2 = Person("Anne", 102)  
#オブジェクトのメンバーメソッドを呼び出す  
person1.showAge()  
person2.showName() 

この例はかなり自己説明的です。私たちが知っているように、「#」で始まる行はPythonのコメントです。コメントは次の実行可能なステップを説明します。このコードは次の出力を生成します。

Pythonクラスの定義

class Person: 

この行は、クラス ‘Person’ のクラス定義の開始を示します。

Pythonクラス変数

    #変数の初期化  
    name = ""  
    age = 0

‘name’と’age’はクラス ‘Person’ の2つのメンバ変数です。このクラスのオブジェクトを宣言するたびに、これら2つの変数がそのメンバとして含まれます。これはオプションの部分ですが、コンストラクタで初期化することもできます。

Pythonのクラスコンストラクター

    #コンストラクタの定義  
    def __init__(self, personName, personAge):  
        self.name = personName  
        self.age = personAge

Pythonのクラスコンストラクターは、クラスの新しいオブジェクトを作成するときに最初に実行されるコードです。主に、コンストラクターはメンバー変数に値を設定するために使用できます。また、コンストラクターでメッセージを表示して、オブジェクトが作成されたことを確認することもできます。Pythonの継承について学ぶと、コンストラクターの役割がさらに大きくなります。コンストラクターメソッドは、def __init__で始まります。その後、最初のパラメーターは ‘self’でなければなりません。これは、クラスのインスタンスへの参照を渡すためです。また、例に示すように、追加のパラメーターを追加することもできます。 ‘personName’と ‘personAge’は、新しいオブジェクトを作成するときに送信する2つのパラメーターです。

Pythonのクラスメソッド

#Pythonのクラスメソッドを定義する  
    def showName(self):  
        print(self.name)  

メソッドは次のように宣言されます:

def method_name(self, parameter 1, parameter 2, …….)
    statements……..
    return value (if required)

前述の例では、メソッドshowName()がそのオブジェクトの ‘name’の値を出力することが示されています。Pythonのメソッドについては、別の日に詳しく説明します。

Python クラスオブジェクト

# クラスのオブジェクトを作成する  
person1 = Person("Richard", 23)  
# 同じクラスの別のオブジェクトを作成する  
person2 = Person("Anne", 30)  

# オブジェクトのメンバーメソッドを呼び出す  
person1.showAge()
person2.showName()

Python でオブジェクトを作成する方法は非常にシンプルです。まず、新しいオブジェクトの名前を入力し、その後に代入演算子とクラスの名前を、パラメーター(コンストラクターで定義されたもの)とともに記述します。パラメーターの数とタイプは、コンストラクター関数で受け取るパラメーターと互換性がある必要があります。オブジェクトが作成されると、メンバーメソッドを呼び出したり、メンバー属性にアクセスしたりできます(アクセス可能な場合)。

# 'name'属性に直接アクセスしてperson1の名前を出力する
print(person1.name)

これで、Python クラスの基本がすべてです。次のチュートリアルでは、継承、多様性などの Python オブジェクト指向の機能について学んでいきますので、Python クラスとその機能についてさらに学んでいきましょう。その間、コーディングを楽しんでください。何か疑問があれば、コメントしてください。参考文献:Python.org ドキュメント

Source:
https://www.digitalocean.com/community/tutorials/python-classes-objects