Pythonでの属性とメソッドへのアクセス
オブジェクト指向プログラミング言語として、Pythonはオブジェクトに重点を置いています。クラスは、オブジェクトが作成される青写真です。 Pythonの各クラスは、属性としての関数を含む多くの属性を持つことができます。
クラスの属性へのアクセス
クラスの属性を確認し、それらの属性を操作するために、以下に示すように、多くのPython組み込みメソッドを使用します。
-
getattr() −クラスの属性にアクセスするために使用されるPythonメソッド。
-
hasattr() −クラス内の属性の存在を確認するために使用されるPythonメソッド。
-
setattr() −クラスに追加の属性を設定するために使用されるPythonメソッド。
以下のプログラムは、Pythonでクラス属性にアクセスするための上記のメソッドの使用法を示しています。
例
class StateInfo: StateName='Telangana' population='3.5 crore' def func1(self): print("Hello from my function") print getattr(StateInfo,'StateName') # returns true if object has attribute print hasattr(StateInfo,'population') setattr(StateInfo,'ForestCover',39) print getattr(StateInfo,'ForestCover') print hasattr(StateInfo,'func1')
出力
上記のコードを実行すると、次の結果が得られます-
Telangana True 39 True
クラスのメソッドへのアクセス
クラスのメソッドにアクセスするには、クラスをオブジェクトにインスタンス化する必要があります。次に、以下のプログラムに示すように、クラスのインスタンスメソッドとしてメソッドにアクセスできます。ここで、自己パラメータを介して、インスタンスメソッドは同じオブジェクト上の属性や他のメソッドにアクセスできます。
例
class StateInfo: StateName='Telangana' population='3.5 crore' def func1(self): print("Hello from my function") print getattr(StateInfo,'StateName') # returns true if object has attribute print hasattr(StateInfo,'population') setattr(StateInfo,'ForestCover',39) print getattr(StateInfo,'ForestCover') print hasattr(StateInfo,'func1') obj = StateInfo() obj.func1()
出力
上記のコードを実行すると、次の結果が得られます-
Telangana True 39 True Hello from my function
あるクラスのメソッドに別のクラスからアクセスする
別のクラスからあるクラスのメソッドにアクセスするには、呼び出されたクラスのインスタンスを呼び出し元のクラスに渡す必要があります。以下の例は、それがどのように行われるかを示しています。
例
class ClassOne: def m_class1(self): print "Method in class 1" # Definign the calling Class class ClassTwo(object): def __init__(self, c1): self.c1 = c1 # The calling method def m_class2(self): Object_inst = self.c1() Object_inst.m_class1() # Passing classone object as an argument to classTwo obj = ClassTwo(ClassOne) obj.m_class2()に渡す
出力
上記のコードを実行すると、次の結果が得られます-
Method in class 1
-
Pythonでクラスの属性を定義する方法は?
クラスの属性 すべて、Pythonのほとんどすべてがオブジェクトです。すべてのオブジェクトには属性とメソッドがあります。したがって、属性はPythonでは非常に基本的です。クラスは、類似したオブジェクトのコレクションである構成です。クラスにも属性があります。クラス属性とインスタンス属性には違いがあります。クラス属性はクラスのインスタンスによって共有されますが、その逆はありません。 例 組み込みの「dir」関数を使用して、オブジェクトの属性のリストを取得できます。例- >>> s = 'abc' >>> len(dir(s)) 71 >
-
Pythonクラスのselfメソッドと__init__メソッドの違いは何ですか?
自己 「自己」という言葉は、クラスのインスタンスを表すために使用されます。 「self」キーワードを使用して、Pythonのクラスの属性とメソッドにアクセスします。 __init__メソッド 「__init__」は、Pythonクラスで再保存されたメソッドです。これは、オブジェクト指向の用語ではコンストラクターと呼ばれます。このメソッドは、オブジェクトがクラスから作成されたときに呼び出され、クラスがクラスの属性を初期化できるようにします。 例 幅(b =120)、長さ(l =160)の長方形フィールドのコストを調べます。 1平方ユニットあたりx(2000)ルピーの費用がかかります cla