Pythonのクラスの属性

スポンサーリンク

クラスは、Python言語の基本的な部分です。

クラスは、関連する機能をグループ化する方法を提供し、オブジェクト指向プログラミングの中心的な役割を果たします。

今回は、Pythonのクラスの属性について見ていきましょう。

    1. 継承 親クラスから子クラスへの属性の採用。
  1. ポリモーフィズム。一つの形から多くの形を作り出すこと。
  2. 抽象化。必要なデータだけを表示し、不要なデータは隠すこと。
  3. カプセル化。クラスの情報を保護すること。
スポンサーリンク

クラス全般について

  1. クラスは、それ自身の中に変数や関数を保持するインターフェースに過ぎません。これらはそれぞれデータメンバ、メンバ関数と呼ばれます。
    1. クラスにアクセスするには、そのクラスのオブジェクトを作成する必要があります。オブジェクトは、そのプロパティを編集することができるインスタンスです。
    1. クラス自体にいくつかのパラメータを与えるために、コンストラクタと呼ばれる特別なメソッドがあります。このメソッドは、オブジェクトを生成するときに実行時に呼び出されます。
    1. クラスのデータメンバーやメンバー関数にアクセスするには、オブジェクトを使用します。

C

クラス変数へのアクセス インスタンス属性

クラスの属性やメソッドにアクセスするには、ドット演算子(.)を使用します。

例えば、クラス myClass の属性 x にアクセスしたい場合は myClass.x という表現を使います。

また、クラス myClass のメソッド myMethod を呼び出したい場合は myClass.myMethod() という表現を使用します。

このデモのために、クラスにいくつかのインスタンス属性を定義してみましょう。

インスタンス属性にアクセスするための構文です。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class student:
    def __init__(self, name, std, roll_no):
        self.nm = name
        self.std = std
        self.rl_no = roll_no
         
    def getData(self):
        print("Student name: ", self.nm)
        print("Standard: ", self.std)
        print("Roll number: ", self.rl_no)
         
    def setData(self, name, std, roll_no):
        self.nm = name
        self.std = std
        self.rl_no = roll_no
         
     
stud = student("Om", "4th", 9)
stud.getData()
print() # to print a new line in between
stud_1 = student("Hari", "5th", 14)
stud_1.getData()

コード

Student name:  Om
Standard:  4th
Roll number:  9
 
Student name:  Hari
Standard:  5th
Roll number:  14

結果は以下の通りです。

object = class_name(parameter1 = value_!, parameter2 = value_2, .., parameter_N = value_N)
object.parameter_1
object.parameter_2
.
.
object.parameter_N

というわけで、このようにアクセスすることができます

クラスメソッドと他のインスタンス属性へのアクセス

構文は以下の様な感じです。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Rectangle:
    def __init__(self,  length, width):
        self.side_1 = length
        self.side_2 = width
         
    def area(self):
        a = self.side_1*self.side_2
        print("Area of the rectangle is: ", a)
         
rect = Rectangle(45.0, 56.98)
 
# printing the type of object
print(type(rect))
 
 # accessing the values through object
print(rect.side_1)
print(rect.side_2)

このコンセプトの簡単な変更点は、クラス属性がクラス変数であることです。

これらの変数はclass_nameのみを使用してアクセスすることができます

これらは静的変数とも呼ばれます。

メモリはそれをきれいにしない、むしろコードの実行が成功するたびに。

新しい値が前の値を保持して更新されます。

例えば、同じ学生クラスを取り上げ、そのクラス属性を作成します。

<class '__main__.Rectangle'>
45.0
56.98

結果は以下の通りです。

出力:

class_name.variable_1
class_name.variable_2
.
.
class_name.variable_N

説明

  1. 学生クラスは、最初に2つの新しいものを含んでいます。それは、学校とバッチ変数を含んでいます。
    1. 次のコードは、最初のコードと同じです。その他は、getter()とsetter()`のメソッドだけです。
    1. 21行目と22行目のコードで、それらの変数を呼び出しています。
    1. 違いに注意してください。

Ending up

このように、クラスのAttributeはClass Variablesとも呼ばれると言えますね。

PythonのOOPやクラスに関する新しい概念を学ぶのに役立ち、かつ楽しいものになれば幸いです。

今後も新しいトピックを紹介する予定です。

それまでは、学習と進歩を続けてください。

タイトルとURLをコピーしました