Python
 Computer >> コンピューター >  >> プログラミング >> Python

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

  1. Pythonでクラスの属性を定義する方法は?

    クラスの属性 すべて、Pythonのほとんどすべてがオブジェクトです。すべてのオブジェクトには属性とメソッドがあります。したがって、属性はPythonでは非常に基本的です。クラスは、類似したオブジェクトのコレクションである構成です。クラスにも属性があります。クラス属性とインスタンス属性には違いがあります。クラス属性はクラスのインスタンスによって共有されますが、その逆はありません。 例 組み込みの「dir」関数を使用して、オブジェクトの属性のリストを取得できます。例- >>> s = 'abc' >>> len(dir(s)) 71 >

  2. Pythonクラスのselfメソッドと__init__メソッドの違いは何ですか?

    自己 「自己」という言葉は、クラスのインスタンスを表すために使用されます。 「self」キーワードを使用して、Pythonのクラスの属性とメソッドにアクセスします。 __init__メソッド 「__init__」は、Pythonクラスで再保存されたメソッドです。これは、オブジェクト指向の用語ではコンストラクターと呼ばれます。このメソッドは、オブジェクトがクラスから作成されたときに呼び出され、クラスがクラスの属性を初期化できるようにします。 例 幅(b =120)、長さ(l =160)の長方形フィールドのコストを調べます。 1平方ユニットあたりx(2000)ルピーの費用がかかります cla