クラスは、Python言語の基本的な部分です。
クラスは、関連する機能をグループ化する方法を提供し、オブジェクト指向プログラミングの中心的な役割を果たします。
今回は、Pythonのクラスの属性について見ていきましょう。
-
- 継承 親クラスから子クラスへの属性の採用。
- ポリモーフィズム。一つの形から多くの形を作り出すこと。
- 抽象化。必要なデータだけを表示し、不要なデータは隠すこと。
- カプセル化。クラスの情報を保護すること。
クラス全般について
- クラスは、それ自身の中に変数や関数を保持するインターフェースに過ぎません。これらはそれぞれデータメンバ、メンバ関数と呼ばれます。
-
- クラスにアクセスするには、そのクラスのオブジェクトを作成する必要があります。オブジェクトは、そのプロパティを編集することができるインスタンスです。
-
- クラス自体にいくつかのパラメータを与えるために、コンストラクタと呼ばれる特別なメソッドがあります。このメソッドは、オブジェクトを生成するときに実行時に呼び出されます。
-
- クラスのデータメンバーやメンバー関数にアクセスするには、オブジェクトを使用します。
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
|
というわけで、このようにアクセスすることができます。
この記事もチェック:Pythonのクラス属性とインスタンス属性の違いや使い方について詳しく解説する
クラスメソッドと他のインスタンス属性へのアクセス
構文は以下の様な感じです。
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 |
説明
- 学生クラスは、最初に2つの新しいものを含んでいます。それは、学校とバッチ変数を含んでいます。
-
- 次のコードは、最初のコードと同じです。その他は、getter()とsetter()`のメソッドだけです。
-
- 21行目と22行目のコードで、それらの変数を呼び出しています。
-
- 違いに注意してください。
Ending up
このように、クラスのAttributeはClass Variablesとも呼ばれると言えますね。
PythonのOOPやクラスに関する新しい概念を学ぶのに役立ち、かつ楽しいものになれば幸いです。
今後も新しいトピックを紹介する予定です。
それまでは、学習と進歩を続けてください。